@unifast/node
Binding Node.js untuk compiler Markdown/MDX unifast yang ditenagai oleh Rust native
Ikhtisar
@unifast/node adalah entry point utama untuk menggunakan unifast di Node.js. Ia menyediakan fungsi compile() yang memanggil compiler Rust native melalui napi-rs untuk performa maksimal. Ia juga mendukung sistem plugin, memungkinkan transform HAST untuk diterapkan di JavaScript setelah langkah kompilasi Rust.
Instalasi
Addon Rust native harus sudah dibangun sebelumnya. Jalankan
cargo build -p unifast-bindings-node --releasejika binary native belum tersedia.
Panduan Cepat
import { compile } from "@unifast/node";
const result = compile("# Hello, **world**!");
console.log(result.output);
// <h1 id="hello-world">Hello, <strong>world</strong>!</h1>Pipeline Plugin
Ketika plugin disediakan, compile() mengeksekusi pipeline berikut:
Ekstraksi plugin - Memisahkan
pluginsdari opsi lainnyaPenggabungan opsi - Melakukan deep-merge
optionsdari setiap plugin ke dalam opsi compileMemaksa HAST - Jika ada plugin yang memiliki
hastTransform, panggilan native menggunakanoutputKind: "hast"Kompilasi native - Memanggil compiler Rust melalui napi-rs
Transform HAST - Menerapkan setiap
hastTransformplugin secara berurutanKonversi output - Jika pengguna tidak meminta output HAST, mengonversi kembali ke HTML melalui
hastToHtml
Plugin Bawaan
Fungsi factory plugin berikut ini sudah disertakan — tidak perlu instalasi terpisah:
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()],
});Ringkasan Export
| Export | Jenis | Deskripsi |
|---|---|---|
compile | function | Meng-compile Markdown/MDX menjadi HTML atau format lain |
gfm, frontmatter, … | function | Factory plugin bawaan (total 20) |
hastToHtml | function | Serializer HAST-ke-HTML (di-re-export dari @unifast/core) |
CompileOptions | type | Konfigurasi kompilasi |
CompileResult | type | Hasil kompilasi |
UnifastPlugin | type | Antarmuka plugin |
TocEntry | type | Entri daftar isi |
HastRoot | type | Node root HAST |
HastElement | type | Node elemen HAST |
HastText | type | Node teks HAST |
HastNode | type | Union dari semua tipe node HAST |
UnifastError | class | Kelas error dasar |
ParseError | class | Kelas error parse |
CompileError | class | Kelas error compile |