rehype-preset-minify

rehype preset to minify and mangle HTML

Usage no npm install needed!

<script type="module">
  import rehypePresetMinify from 'https://cdn.skypack.dev/rehype-preset-minify';
</script>

README

rehype-preset-minify

Build Coverage Downloads Size Sponsors Backers Chat

rehype preset to minify HTML.

In
<!doctype html>
<html lang="en-GB">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="content-language" content="en-US">
    <script src="index.js" type="text/javascript" language="javascript">
      alert(true);
    </script>
    <link rel="stylesheet" href="index.css" type="text/css">
    <title>Foo  &amp;  bar</title>
  </head>
  <body>
    <h1 class="foo foo">bar  bar</h1>
    <p id="alfred" id="alfred">  <strong>foo</strong> <em>bar</em> </p>
    <button type="BUTTON" onclick="javascript:return false">Alpha</button>
  </body>
</html>
Out
<!doctypehtml><html lang=en-US><meta charset=utf8><script src=index.js></script><link rel=stylesheet href=index.css><title>Foo &amp bar</title><h1 class=foo>bar bar</h1><p id=alfred><strong>foo</strong> <em>bar</em></p><button type=button onclick=return!1>Alpha</button>

Install

This package is ESM only: Node 12+ is needed to use it and it must be importeded instead of requiredd.

npm:

npm install rehype-preset-minify

This package exports no identifiers. The default export is rehypePresetMinify

CLI

After installing, add the following to .rehyperc (or package.json under "rehype"):

{
  "plugins": [
    "preset-minify"
  ]
}

Then use rehype-cli:

rehype src/ --output dist/

API

Use:

import {rehype} from 'rehype'
import rehypePresetMinify from 'rehype-preset-minify'

const doc = `<!doctype html>
<html>
  <head>
    <title>Hello</title>
  </head>
  <body>
    <h1>World!</h1>
  </body>
</html>
`

rehype()
  .use(rehypePresetMinify)
  .process(doc)
  .then((file) => {
    console.log(String(file))
  })

Yields:

<!doctypehtml><title>Hello</title><h1>World!</h1>

Contribute

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.

License

MIT © Titus Wormer