unified

Project: rehypejs/rehype-document

Package: rehype-document@5.1.0

  1. Dependencies: 4·Dependents: 23
  2. rehype plugin to wrap a document around a fragment
  1. unified 154
  2. plugin 132
  3. html 110
  4. rehype 72
  5. hast 61
  6. rehype-plugin 51
  7. tree 42
  8. syntax 32
  9. document 11
  10. wrap 3

rehype-document

Build Coverage Downloads Size Sponsors Backers Chat

rehype plugin to wrap a document around a fragment.

Install

npm:

npm install rehype-document

Use

Say example.md looks as follows:

## Hello world!

This is **my** document.

…and example.js like this:

var vfile = require('to-vfile')
var report = require('vfile-reporter')
var unified = require('unified')
var parse = require('remark-parse')
var mutate = require('remark-rehype')
var stringify = require('rehype-stringify')
var doc = require('rehype-document')

unified()
  .use(parse)
  .use(mutate)
  .use(doc, {title: 'Hi!'})
  .use(stringify)
  .process(vfile.readSync('example.md'), function(err, file) {
    console.error(report(err || file))
    console.log(String(file))
  })

Now, running node example yields:

example.md: no issues found
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Hi!</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h2>Hello world!</h2>
<p>This is <strong>my</strong> document.</p>
</body>
</html>

API

rehype().use(document[, options])

Wrap a document around a fragment.

options
options.title

Text to use as title (string, default: name of file, if any).

options.language

Natural language of document (string, default: 'en'). should be a BCP 47 language tag.

options.responsive

Whether to insert a meta[viewport] (boolean, default: true).

options.doctype

Doctype to use (string, default: '5').

options.style

CSS to include in head in <style> elements (string or Array.<string>, default: []).

options.css

Links to stylesheets to include in head (string or Array.<string>, default: []).

options.meta

Metadata to include in head (Object or Array.<Object>, default: []). Each object is passed as properties to hastscript with a meta element.

Link tags to include in head (Object or Array.<Object>, default: []). Each object is passed as properties to hastscript with a link element.

options.script

Inline scripts to include at end of body (string or Array.<string>, default: []).

options.js

External scripts to include at end of body (string or Array.<string>, default: []).

Security

Use of rehype-document can open you up to a cross-site scripting (XSS) attack if you pass user provided content in options.

Always be wary of user input and use rehype-sanitize.

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