Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

rehype-wrap

1.0.10 • Public • Published

rehype-wrap

Wrap selected elements with a given element

Travis Coverage Status David

Install

npm i -S rehype-wrap

Usage

const wrap = require('rehype-wrap')
const rehype = require('rehype')
 
rehype()
  .use(wrap, {/* options */})
  .process(/* html string */)
  .then(/* vfile */)
  .catch(/* handle any errors */)

Options

wrap.selector

string

Select an element to be wrapped. Expects a string selector that can be passed to hast-util-select (supported selectors). If wrap.selector is not set then wrap will check for a body element and wrap all elements inside. Otherwise, if there is no body element, wrap treats the html as a fragment and wraps everything.

wrap.wrapper

string

Element to wrap around wrap.selector. Expects a string selector that can be parsed into html using hast-util-parse-selector (see readme)

Example

# dependencies 
 
npm i unified to-vfile remark-parse remark-rehype vfile-reporter rehype-document rehype-stringify remark-wrap
# example.md
 
```js
const foo = 'bar'
```
/* example.js */
 
'use strict'
 
const unified = require('unified')
const toVfile = require('to-vfile')
const remarkParse = require('remark-parse')
const remarkRehype = require('remark-rehype')
const vfileReporter = require('vfile-reporter')
const rehypeDocument = require('rehype-document')
const rehypeStringify = require('rehype-stringify')
const rehypeWrap = require('rehype-wrap')
 
const markdown = toVfile.readSync('./example.md')
 
 
unified()
  .use(remarkParse)
  .use(remarkRehype)
  .use(rehypeDocument)
  .use(rehypeWrap, {wrapper: 'div.markdown-body'})
  .use(rehypeStringify)
  .process(markdown, (err, file) => {
    console.error(vfileReporter(err ||file))
    console.log(String(file))
  })
<!— outpu>
 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body><div class="markdown-body">
<h1>Foo</h1>
<pre><code class="language-js">const foo = 'bar'
</code></pre>
</div></body>
</html>
 

Acknowledgments

Rehype-wrap depends on a few great packages you should check out.

License

MIT © Paul Zimmer

Install

npm i rehype-wrap

DownloadsWeekly Downloads

34

Version

1.0.10

License

MIT

Unpacked Size

8.17 kB

Total Files

6

Last publish

Collaborators

  • avatar