@unifast/shiki

基于 Shiki 的 unifast 语法高亮插件,通过 HAST 转换实现。

概述

@unifast/shiki 提供基于 Shiki 的语法高亮能力,支持 200 多种语言以及丰富的主题。与内置的 highlight 插件不同,Shiki 以 JavaScript HAST 转换的形式运行,将 <pre><code> 块替换为带有完整样式的输出。

该插件会自动禁用内置的 Rust 高亮器,以避免重复处理。

安装

类型定义

ShikiTransformerOptions

属性类型默认值描述
themesBundledTheme[]["github-dark"]要加载的 Shiki 主题
defaultThemeBundledThemethemes 中的第一个主题渲染时使用的默认主题
langsBundledLanguage[][]要加载的语言。只有已加载的语言才会被高亮。

BundledThemeBundledLanguage 是来自 shiki 包的类型。

ShikiTransformer

属性类型描述
transform(hast: HastRoot) => HastRoot对所有 <pre><code class="language-*"> 块应用 Shiki 高亮

导出列表

导出类别描述
createShikiPluginfunction创建一个 Shiki 版 UnifastPlugin(异步)
createShikiTransformerfunction创建一个独立的 Shiki 转换器(异步)
ShikiTransformerOptionstypeShiki 配置选项
ShikiTransformertype转换器接口
hastToHtmlfunctionHAST 到 HTML 的序列化函数(重新导出)
HastNodeHastRoottypesHAST 节点类型(重新导出)