README
hast-util-to-xast
hast (HTML / SVG) utility to transform trees to xast (XML).
Install
This package is ESM only:
Node 12+ is needed to use it and it must be import
ed instead of require
d.
npm:
npm install hast-util-to-xast
Use
Say we have an example.html
file, that looks as follows:
<!doctypehtml>
<title>Hello, World!</title>
<h1>π, π</h1>
β¦and our script, example.js
, looks as follows:
import fs from 'fs'
import unified from 'unified'
import parse from 'rehype-parse'
import {toXast} from 'hast-util-to-xast'
import {toXml} from 'xast-util-to-xml'
// Get the HTML syntax tree:
var hast = unified()
.use(parse)
.parse(fs.readFileSync('example.html'))
// Turn hast to xast:
var xast = toXast(hast)
// Serialize xast:
console.log(toXml(xast))
Yields:
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Hello, World!</title>
</head><body><h1>π, π</h1>
</body></html>
API
This package exports the following identifiers: toXast
.
There is no default export.
toXast(node[, space|options])
Transform the given hast tree to xast.
space
Treated as options.space
.
options
options.space
Whether the root of the tree is in the 'html'
or 'svg'
space (enum, 'svg'
or 'html'
, default: 'html'
).
If an svg
element is found in the HTML space, toXast
automatically switches
to the SVG space when entering the element, and switches back when exiting.
You can also switch explicitly with xmlns
properties in hast, but note that
only HTML and SVG are supported.
Security
Both HTML and XML can be a dangerous language: donβt trust user-provided data.
Use hast-util-santize
to make the hast tree safe before using this
utility.
Related
unist-builder
β Create any unist treehastscript
β Create a hast (HTML or SVG) treexastscript
β Create a xast (XML) treexast-util-to-xml
β Serialize nodes to XML
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