rehype-recma
rehype plugin to transform HTML to JS.
Contents
What is this?
This package is a unified (rehype) plugin
that can turn HTML into JavaScript.
When should I use this?
Use this when you want to integrate static HTML into some JavaScript
application.
If you don’t use plugins and access syntax trees manually,
you can directly use hast-util-to-estree
,
which is used inside this plugin.
Install
This package is ESM only.
In Node.js (version 16+),
install with npm:
npm install rehype-recma
In Deno with esm.sh
:
import rehypeRecma from 'https://esm.sh/rehype-recma@1'
In browsers with esm.sh
:
<script type="module">
import rehypeRecma from 'https://esm.sh/rehype-recma@1?bundle'
</script>
Use
Say we have the following module example.js
:
import recmaJsx from 'recma-jsx'
import recmaStringify from 'recma-stringify'
import rehypeParse from 'rehype-parse'
import rehypeRecma from 'rehype-recma'
import {unified} from 'unified'
const file = await unified()
.use(rehypeParse, {fragment: true})
.use(rehypeRecma)
.use(recmaJsx)
.use(recmaStringify)
.process('<p>Hi!<h1>Hello!')
console.log(String(file))
…running that with node example.js
yields:
<><p>{"Hi!"}</p><h1>{"Hello!"}</h1></>;
API
This package exports no identifiers.
The default export is rehypeRecma
.
unified().use(rehypeRecma[, options])
Plugin to transform HTML (hast) to JS (estree).
Parameters
options
(Options
, optional)
— configuration
Returns
Transform (Transformer
).
Options
Configuration (TypeScript type).
Same as Options
from hast-util-to-estree
.
Types
This package is fully typed with TypeScript.
It exports the additional type Options
.
Compatibility
Projects maintained by the unified collective are compatible with maintained
versions of Node.js.
When we cut a new major release,
we drop support for unmaintained versions of Node.
This means we try to keep the current release line,
rehype-recma@1
,
compatible with Node.js 16.
Security
As recma works on JS and evaluating JS is unsafe,
use of recma can also be unsafe.
Do not evaluate unsafe code.
Contribute
See § Contribute on our site for ways to get started.
See § Support 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