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

hast-util-raw

6.0.1 • Public • Published

hast-util-raw

Build Coverage Downloads Size Sponsors Backers Chat

hast utility to parse the tree again, now supporting embedded raw nodes.

One of the reasons to do this is for “malformed” syntax trees: for example, say there’s an h1 element in a p element, this utility will make them siblings.

Another reason to do this is if raw HTML/XML is embedded in a syntax tree, which can occur when coming from Markdown using mdast-util-to-hast.

If you’re working with remark and/or remark-rehype, use rehype-raw instead.

Install

npm:

npm install hast-util-raw

Use

var h = require('hastscript')
var raw = require('hast-util-raw')
 
var tree = h('div', [h('h1', ['Foo ', h('h2', 'Bar'), ' Baz'])])
 
var clean = raw(tree)
 
console.log(clean)

Yields:

{ type: 'element',
  tagName: 'div',
  properties: {},
  children:
   [ { type: 'element',
       tagName: 'h1',
       properties: {},
       children: [Object] },
     { type: 'element',
       tagName: 'h2',
       properties: {},
       children: [Object] },
     { type: 'text', value: ' Baz' } ] }

API

raw(tree[, file])

Given a hast tree and an optional vfile (for positional info), return a new parsed-again hast tree.

Security

Use of hast-util-raw can open you up to a cross-site scripting (XSS) attack as raw nodes are unsafe. The following example shows how a raw node is used to inject a script that runs when loaded in a browser.

raw(u('root', [u('raw', '<script>alert(1)</script>')]))

Yields:

<script>alert(1)</script> 

Do not use this utility in combination with user input or use hast-util-santize.

Related

Contribute

See contributing.md in syntax-tree/.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

Install

npm i hast-util-raw

DownloadsWeekly Downloads

1,213,209

Version

6.0.1

License

MIT

Unpacked Size

15.6 kB

Total Files

5

Last publish

Collaborators

  • avatar
  • avatar