rehype plugin to minify language attributes.
- What is this?
- When should I use this?
- Install
- Use
- API
- Example
- Syntax
- Syntax tree
- Types
- Compatibility
- Security
- Contribute
- License
This package is a plugin that can minify the contents of language tags: BCP 47 tags.
You can use this plugin when you want to improve the size of HTML documents.
This package is ESM only. In Node.js (version 12.20+, 14.14+, or 16.0+), install with npm:
npm install rehype-minify-language
In Deno with esm.sh
:
import rehypeMinifyLanguage from 'https://esm.sh/rehype-minify-language@2'
In browsers with esm.sh
:
<script type="module">
import rehypeMinifyLanguage from 'https://esm.sh/rehype-minify-language@2?bundle'
</script>
On the API:
import {read} from 'to-vfile'
import {unified} from 'unified'
import rehypeParse from 'rehype-parse'
import rehypeStringify from 'rehype-stringify'
import rehypeMinifyLanguage from 'rehype-minify-language'
main()
async function main() {
const file = await unified()
.use(rehypeParse)
.use(rehypeMinifyLanguage)
.use(rehypeStringify)
.process(await read('index.html'))
console.log(String(file))
}
On the CLI:
rehype input.html --use rehype-minify-language --output output.html
On the CLI in a config file (here a package.json
):
…
"rehype": {
"plugins": [
…
+ "rehype-minify-language",
…
]
}
…
This package exports no identifiers.
The default export is rehypeMinifyLanguage
.
Minify language attributes. There are no options.
<span lang="en-US">Color</span>
<a href="https://nl.wikipedia.org/wiki/HyperText_Markup_Language" hreflang="nld-NL">HTML</a>
<span xml:lang="pt-BR">ótimo</span>
<track src="colour.vtt" srclang="en-GB" label="English (UK)">
<span lang="en">Color</span>
<a href="https://nl.wikipedia.org/wiki/HyperText_Markup_Language" hreflang="nl">HTML</a>
<span xml:lang="pt">ótimo</span>
<track src="colour.vtt" srclang="en-gb" label="English (UK)">
HTML is handled according to WHATWG HTML (the living standard), which is also followed by browsers such as Chrome and Firefox.
The syntax tree format used is hast
.
This package is fully typed with TypeScript.
Projects maintained by the unified collective are compatible with all maintained versions of Node.js. As of now, that is Node.js 12.20+, 14.14+, and 16.0+. Our projects sometimes work with older versions, but this is not guaranteed.
As rehype works on HTML, and improper use of HTML can open you up to a
cross-site scripting (XSS) attack, use of rehype can also be unsafe.
Use rehype-sanitize
to make the tree safe.
See contributing.md
in rehypejs/.github
for ways
to get started.
See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.