@unifast/node

Node.js-Bindung für den unifast Markdown-/MDX-Compiler, angetrieben durch natives Rust

Überblick

@unifast/node ist der primäre Einstiegspunkt für die Verwendung von unifast in Node.js. Es stellt die Funktion compile() bereit, die den nativen Rust-Compiler für maximale Performance über napi-rs aufruft. Es unterstützt außerdem das Plugin-System und ermöglicht es, HAST-Transformationen nach dem Rust-Kompilierungsschritt in JavaScript anzuwenden.

Installation

Das native Rust-Addon muss vorab gebaut werden. Führen Sie cargo build -p unifast-bindings-node --release aus, falls die native Binärdatei nicht verfügbar ist.

Schnellstart

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

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

Plugin-Pipeline

Werden Plugins bereitgestellt, führt compile() die folgende Pipeline aus:

  1. Plugins extrahieren – Trennt plugins vom Rest der Optionen

  2. Optionen zusammenführen – Führt die options jedes Plugins tief in die Kompilierungsoptionen ein

  3. HAST erzwingen – Wenn ein Plugin eine hastTransform besitzt, verwendet der native Aufruf outputKind: "hast"

  4. Native Kompilierung – Ruft den Rust-Compiler über napi-rs auf

  5. HAST-Transformationen – Wendet die hastTransform jedes Plugins der Reihe nach an

  6. Ausgabe konvertieren – Hat der Benutzer keine HAST-Ausgabe angefordert, wird über hastToHtml zurück zu HTML konvertiert

Integrierte Plugins

Die folgenden Plugin-Factory-Funktionen sind enthalten – eine separate Installation ist nicht erforderlich:

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

Zusammenfassung der Exporte

ExportArtBeschreibung
compilefunctionMarkdown/MDX zu HTML oder anderen Formaten kompilieren
gfm, frontmatter, …functionIntegrierte Plugin-Factories (insgesamt 20)
hastToHtmlfunctionHAST-zu-HTML-Serialisierer (aus @unifast/core reexportiert)
CompileOptionstypeKompilierungskonfiguration
CompileResulttypeKompilierungsergebnis
UnifastPlugintypePlugin-Schnittstelle
TocEntrytypeInhaltsverzeichnis-Eintrag
HastRoottypeHAST-Wurzelknoten
HastElementtypeHAST-Elementknoten
HastTexttypeHAST-Textknoten
HastNodetypeVereinigung aller HAST-Knotentypen
UnifastErrorclassBasisfehlerklasse
ParseErrorclassParse-Fehlerklasse
CompileErrorclassKompilier-Fehlerklasse