@unifast/node
Binding Node.js cho trình biên dịch Markdown/MDX unifast với lõi Rust native
Tổng quan
@unifast/node là điểm truy cập chính để sử dụng unifast trong Node.js. Nó cung cấp hàm compile() để gọi trình biên dịch Rust native qua napi-rs nhằm đạt hiệu năng tối đa. Gói này cũng hỗ trợ hệ thống plugin, cho phép áp dụng các phép biến đổi HAST trong JavaScript sau bước biên dịch Rust.
Cài đặt
Addon Rust native phải được build trước. Chạy
cargo build -p unifast-bindings-node --releasenếu binary native chưa có sẵn.
Bắt đầu nhanh
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
Khi các plugin được cung cấp, compile() thực thi pipeline sau:
Trích xuất plugin - Tách
pluginskhỏi các tùy chọn còn lạiGộp tùy chọn - Deep-merge
optionscủa từng plugin vào tùy chọn biên dịchBắt buộc HAST - Nếu có plugin nào có
hastTransform, lời gọi native sẽ dùngoutputKind: "hast"Biên dịch native - Gọi trình biên dịch Rust qua napi-rs
Biến đổi HAST - Áp dụng
hastTransformcủa từng plugin theo thứ tựChuyển đầu ra - Nếu người dùng không yêu cầu đầu ra HAST, chuyển ngược về HTML qua
hastToHtml
Plugin tích hợp sẵn
Các hàm factory plugin sau được đóng gói sẵn — không cần cài đặt thêm:
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()],
});Tổng hợp các export
| Export | Loại | Mô tả |
|---|---|---|
compile | function | Biên dịch Markdown/MDX thành HTML hoặc các định dạng khác |
gfm, frontmatter, … | function | Các factory plugin tích hợp sẵn (tổng cộng 20) |
hastToHtml | function | Bộ tuần tự hóa HAST-to-HTML (re-export từ @unifast/core) |
CompileOptions | type | Cấu hình biên dịch |
CompileResult | type | Kết quả biên dịch |
UnifastPlugin | type | Interface plugin |
TocEntry | type | Mục của bảng mục lục |
HastRoot | type | Nút gốc HAST |
HastElement | type | Nút phần tử HAST |
HastText | type | Nút văn bản HAST |
HastNode | type | Union của tất cả các loại nút HAST |
UnifastError | class | Lớp lỗi cơ sở |
ParseError | class | Lớp lỗi parse |
CompileError | class | Lớp lỗi biên dịch |