@unifast/highlight
Plugin syntax highlighting dựa trên highlight.js cho unifast thông qua các phép biến đổi HAST
Tổng quan
@unifast/highlight cung cấp khả năng syntax highlighting được hỗ trợ bởi lowlight (một wrapper của highlight.js). Khác với các plugin tích hợp sẵn syntect() và treeSitter() chạy highlight trong Rust, gói này áp dụng highlight dưới dạng một phép biến đổi HAST trong JavaScript sau khi biên dịch — cho phép bạn tận dụng hệ sinh thái ngôn ngữ và theme phong phú của highlight.js.
Cài đặt
Bắt đầu nhanh
import { compile } from "@unifast/node";
import { highlight } from "@unifast/highlight";
const md = `
\`\`\`javascript
const x = 42;
console.log(x);
\`\`\`
`;
const result = compile(md, {
plugins: [highlight()],
});
console.log(result.output);
// Code blocks are highlighted with highlight.js CSS classesCách hoạt động
Trình biên dịch Rust sinh ra đầu ra HAST với các khối
<pre><code>chưa được highlighthastTransformcủa pluginhighlight()duyệt cây HASTVới mỗi phần tử
<code>có classlanguage-*, lowlight sẽ highlight đoạn mãCác nút HAST đã highlight sẽ thay thế các con ban đầu
Vì nó chạy dưới dạng phép biến đổi HAST, việc highlight native của Rust (syntect / treeSitter) phải được tắt đi. Plugin sẽ tự động thiết lập highlight.enabled: false trong các tùy chọn biên dịch.
Tổng hợp các export
| Export | Loại | Mô tả |
|---|---|---|
highlight | function | Tạo plugin biến đổi HAST bằng highlight.js |