@unifast/node

Liaison Node.js pour le compilateur Markdown/MDX unifast, propulsée par Rust natif

Vue d’ensemble

@unifast/node est le point d’entrée principal pour utiliser unifast dans Node.js. Il expose la fonction compile() qui invoque le compilateur natif Rust via napi-rs, pour des performances maximales. Il prend également en charge le système de plugins, permettant d’appliquer des transformations HAST en JavaScript après l’étape de compilation Rust.

Installation

L’extension native Rust doit être compilée au préalable. Exécutez cargo build -p unifast-bindings-node --release si le binaire natif n’est pas disponible.

Démarrage rapide

import { compile } from "@unifast/node";

const result = compile("# Hello, **world**!");
console.log(result.output);
// <h1 id="hello-world">Hello, <strong>world</strong>!</h1>

Pipeline des plugins

Lorsque des plugins sont fournis, compile() exécute le pipeline suivant :

  1. Extraction des plugins - Sépare plugins du reste des options

  2. Fusion des options - Fusionne en profondeur les options de chaque plugin dans les options de compilation

  3. Forçage du HAST - Si l’un des plugins possède un hastTransform, l’appel natif utilise outputKind: "hast"

  4. Compilation native - Appelle le compilateur Rust via napi-rs

  5. Transformations HAST - Applique dans l’ordre les hastTransform de chaque plugin

  6. Conversion de la sortie - Si l’utilisateur n’a pas demandé de sortie HAST, reconvertit en HTML via hastToHtml

Plugins intégrés

Les fabriques de plugins suivantes sont incluses — aucune installation séparée n’est nécessaire :

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()],
});

Résumé des exports

ExportNatureDescription
compilefonctionCompile du Markdown/MDX vers du HTML ou d’autres formats
gfm, frontmatter, …fonctionFabriques de plugins intégrés (20 au total)
hastToHtmlfonctionSérialiseur HAST vers HTML (réexporté depuis @unifast/core)
CompileOptionstypeConfiguration de compilation
CompileResulttypeRésultat de compilation
UnifastPlugintypeInterface de plugin
TocEntrytypeEntrée de table des matières
HastRoottypeNœud racine HAST
HastElementtypeNœud élément HAST
HastTexttypeNœud texte HAST
HastNodetypeUnion de tous les types de nœuds HAST
UnifastErrorclasseClasse d’erreur de base
ParseErrorclasseClasse d’erreur d’analyse
CompileErrorclasseClasse d’erreur de compilation