A reshape plugin that pretty-prints your html
Note: This project is in early development, and versioning is a little different. Read this for more details.
npm install reshape-beautify --save
Note: This project is compatible with node v6+ only
Add it as a reshape plugin:
const reshape = require('reshape')
const beautify = require('reshape-beautify')
reshape({ plugins: beautify(/* options */) })
.process(htmlString)
.then((res) => console.log(res.output()))
...and that's it! You can specify any options as listed below to customize the behavior.
This plugin will ensure that all tags are correctly indented. However, it will not make changes to any tag that contains a plain text node, because this could interfere with the way the content looks. For example, this crappy html:
<head>
<title>bad indentation</title>
<meta name='author' content='not me'>
</head>
<body><section> <p>hi there</p>
</section>
</body>
Would be transformed as such:
<head>
<title>bad indentation</title>
<meta name='author' content='not me'>
</head>
<body>
<section>
<p>hi there</p>
</section>
</body>
Wow, so clean! It will do the same for minified html:
<body><p>hi there</p><div class='wow'>this is minified</div></body>
Is transformed to:
<body>
<p>hi there</p>
<div class='wow'>this is minified</div>
</body>
However, if you have something like this:
<section>
hello there!
<span>this is great</span>
</section>
We won't alter the spaces inside your section content, because this would change the way it looks on the page, so it would turn out exactly the same as the input.
Name | Description | Default |
---|---|---|
indent | Number of spaces to indent your elements | 2 |
- Details on the license can be found here
- Details on running tests and contributing can be found here