Package Exports
- rehype-format
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (rehype-format) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
rehype-format
rehype plugin to format HTML.
Install
npm:
npm install rehype-format
Use
Say we have the following file, index.html
:
<!doCTYPE HTML><html>
<head>
<title>Hello!</title>
<meta charset=utf8>
</head>
<body><section> <p>hi there</p>
</section>
</body>
</html>
And our script, example.js
, looks as follows:
var vfile = require('to-vfile')
var report = require('vfile-reporter')
var rehype = require('rehype')
var format = require('rehype-format')
rehype()
.use(format)
.process(vfile.readSync('index.html'), function(err, file) {
console.error(report(err || file))
console.log(String(file))
})
Now, running node example
yields:
index.html: no issues found
<!doctype html>
<html>
<head>
<title>Hello!</title>
<meta charset="utf8">
</head>
<body>
<section>
<p>hi there</p>
</section>
</body>
</html>
API
rehype().use(format[, options])
Format white space in the processed tree.
- Collapse all white space (to a single space or newline)
- Remove unneeded white space
- Inject needed newlines and indentation
- Indent previously collapsed newlines properly
All superfluous white space is removed. However, as newlines are kept (and later properly indented), your code will still line-wrap as expected.
options
options.indent
Indentation per level (number
, string
, default: 2
).
When number, uses that amount of spaces.
When string
, uses that per indentation level.
options.indentInitial
Whether to indent the first level (boolean
, default: true
).
This is usually the <html>
, thus not indenting head
and body
.
options.blanks
List of tag names to join with a blank line (Array.<string>
, default: []
).
These tags, when next to each other, are joined by a blank line (\n\n
).
For example, when ['head', 'body']
is given, a blank line is added between
these two.
Security
Use of rehype-format
changes white space in the syntax tree.
White space in <script>
, <style>
, <pre>
, or <textarea>
is not modified.
If the tree is already safe, use of this plugin does not open you up for a
cross-site scripting (XSS) attack.
When in doubt, use rehype-sanitize
.
Related
rehype-minify
— Minify HTMLrehype-document
— Wrap a document around a fragmentrehype-sanitize
— Sanitize HTMLrehype-toc
— Add a table of contents (TOC)rehype-section
— Wrap headings and their contents in sections
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.