@unifast/node
Binding para Node.js del compilador de Markdown/MDX unifast, impulsado por Rust nativo
Visión general
@unifast/node es el punto de entrada principal para usar unifast en Node.js. Proporciona la función compile(), que invoca el compilador nativo en Rust a través de napi-rs para máximo rendimiento. También soporta el sistema de plugins, permitiendo que las transformaciones HAST se apliquen en JavaScript después del paso de compilación en Rust.
Instalación
El addon nativo de Rust debe estar precompilado. Ejecuta
cargo build -p unifast-bindings-node --releasesi el binario nativo no está disponible.
Inicio rápido
import { compile } from "@unifast/node";
const result = compile("# Hello, **world**!");
console.log(result.output);
// <h1 id="hello-world">Hello, <strong>world</strong>!</h1>Pipeline de plugins
Cuando se proporcionan plugins, compile() ejecuta la siguiente pipeline:
Extraer plugins - Separa
pluginsdel resto de las opcionesCombinar opciones - Realiza un deep-merge de las
optionsde cada plugin con las opciones de compilaciónForzar HAST - Si algún plugin tiene un
hastTransform, la llamada nativa usaoutputKind: "hast"Compilación nativa - Invoca el compilador en Rust a través de napi-rs
Transformaciones HAST - Aplica el
hastTransformde cada plugin en ordenConvertir salida - Si el usuario no solicitó salida HAST, convierte de vuelta a HTML mediante
hastToHtml
Plugins integrados
Las siguientes funciones factory de plugins están incluidas; no es necesaria una instalación aparte:
gfm, frontmatter, sanitize, syntect, treeSitter, toc, externalLinks, autolinkHeadings, smartypants, wikiLink, codeImport, emoji, breaks, math, githubAlert, sectionize, directive, definitionList, rubyAnnotation, cjk
import { compile, gfm, frontmatter, syntect } from "@unifast/node";
const result = compile(source, {
plugins: [gfm(), frontmatter(), syntect()],
});Resumen de exports
| Export | Tipo | Descripción |
|---|---|---|
compile | function | Compila Markdown/MDX a HTML u otros formatos |
gfm, frontmatter, … | function | Factories de plugins integrados (20 en total) |
hastToHtml | function | Serializador de HAST a HTML (reexportado desde @unifast/core) |
CompileOptions | type | Configuración de compilación |
CompileResult | type | Resultado de compilación |
UnifastPlugin | type | Interfaz de plugin |
TocEntry | type | Entrada de tabla de contenidos |
HastRoot | type | Nodo raíz HAST |
HastElement | type | Nodo de elemento HAST |
HastText | type | Nodo de texto HAST |
HastNode | type | Unión de todos los tipos de nodo HAST |
UnifastError | class | Clase de error base |
ParseError | class | Clase de error de parseo |
CompileError | class | Clase de error de compilación |