@unifast/shiki

Plugin syntax highlighting dựa trên Shiki cho unifast với các phép biến đổi HAST

Tổng quan

@unifast/shiki cung cấp khả năng syntax highlighting được hỗ trợ bởi Shiki, với hỗ trợ hơn 200 ngôn ngữ và rất nhiều theme khác nhau. Khác với plugin highlight tích hợp sẵn, Shiki chạy dưới dạng một phép biến đổi HAST trong JavaScript, thay thế các khối <pre><code> bằng đầu ra được tô màu phong phú.

Plugin sẽ tự động tắt highlighter Rust tích hợp sẵn để tránh xử lý trùng lặp.

Cài đặt

Định nghĩa kiểu

ShikiTransformerOptions

Thuộc tínhKiểuMặc địnhMô tả
themesBundledTheme[]["github-dark"]Các theme Shiki cần load
defaultThemeBundledThemeTheme đầu tiên trong themesTheme mặc định để render
langsBundledLanguage[][]Các ngôn ngữ cần load. Chỉ những ngôn ngữ đã load mới được highlight.

BundledThemeBundledLanguage là các kiểu từ gói shiki.

ShikiTransformer

Thuộc tínhKiểuMô tả
transform(hast: HastRoot) => HastRootÁp dụng Shiki highlighting lên tất cả các khối <pre><code class="language-*">

Tổng hợp các export

ExportLoạiMô tả
createShikiPluginfunctionTạo một UnifastPlugin Shiki (async)
createShikiTransformerfunctionTạo một transformer Shiki độc lập (async)
ShikiTransformerOptionstypeCác tùy chọn cấu hình Shiki
ShikiTransformertypeInterface transformer
hastToHtmlfunctionBộ tuần tự hóa HAST-to-HTML (re-export)
HastNode, HastRoot, v.v.typesCác loại nút HAST (re-export)