@unifast/node
Binding Node.js para o compilador Markdown/MDX do unifast, alimentado por Rust nativo
Visão Geral
O @unifast/node é o ponto de entrada principal para usar o unifast no Node.js. Ele fornece a função compile() que invoca o compilador Rust nativo via napi-rs para máxima performance. Também suporta o sistema de plugins, permitindo que transformações HAST sejam aplicadas em JavaScript após a etapa de compilação em Rust.
Instalação
O addon Rust nativo precisa estar pré-construído. Execute
cargo build -p unifast-bindings-node --releasese o binário nativo não estiver disponível.
Início 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
Quando plugins são fornecidos, compile() executa a seguinte pipeline:
Extrair plugins - Separa
pluginsdo restante das opçõesMesclar opções - Faz deep-merge das
optionsde cada plugin nas opções de compilaçãoForçar HAST - Se algum plugin tem um
hastTransform, a chamada nativa usaoutputKind: "hast"Compilação nativa - Chama o compilador Rust via napi-rs
Transformações HAST - Aplica o
hastTransformde cada plugin em ordemConverter saída - Se o usuário não solicitou saída HAST, converte de volta para HTML via
hastToHtml
Plugins Integrados
As seguintes funções factory de plugins estão incluídas — sem necessidade de instalação separada:
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()],
});Resumo de Exports
| Export | Tipo | Descrição |
|---|---|---|
compile | function | Compila Markdown/MDX para HTML ou outros formatos |
gfm, frontmatter, … | function | Factories de plugins integrados (20 no total) |
hastToHtml | function | Serializador de HAST para HTML (re-exportado de @unifast/core) |
CompileOptions | type | Configuração de compilação |
CompileResult | type | Resultado da compilação |
UnifastPlugin | type | Interface de plugin |
TocEntry | type | Entrada da table of contents |
HastRoot | type | Nó raiz HAST |
HastElement | type | Nó de elemento HAST |
HastText | type | Nó de texto HAST |
HastNode | type | União de todos os tipos de nós HAST |
UnifastError | class | Classe base de erro |
ParseError | class | Classe de erro de parse |
CompileError | class | Classe de erro de compilação |