代码高亮与插件

Quartz 的代码语言自动检测方案,以及社区插件的安装方式。


代码语言检测

内容里有 1134 个缩进代码块没有语言标记。写了个 rehype 插件(syntax.ts)在 Shiki 之前跑,先用手动规则匹配常见模式(Java 的 public class、C 的 #include、Go 的 func、Shell 的 $ 等),匹配不上的交给 highlight.js highlightAuto 兜底(置信度 >= 3),都不行就标为 text 不高亮。

最终 2116 个代码块里 1808 个检测成功(85%),剩下 308 个是中文伪代码之类确实不该高亮的。

试过 @vscode/vscode-languagedetection(TensorFlow),对短代码片段(< 10 行)误判严重,还是 highlight.js + 手动规则靠谱。


社区插件安装

Quartz 插件生态

Quartz 没有 npm 插件市场,社区插件是直接将 TypeScript 文件复制到 quartz/plugins/ 目录。

已安装的第三方插件

Clickable Images Zoom(图片放大)

  • 来源:vazome/quartz-clickable-images-zoom-plugin
  • 文件:quartz/plugins/transformers/clickableImages.ts
  • 功能:点击图片弹出 Lightbox 遮罩层放大查看,支持 ESC 关闭
  • 注册:在 transformers/index.ts 导出,在 quartz.config.ts 添加 Plugin.ClickableImages()

其他可用插件

插件说明状态
Jupyter Notebook Embed嵌入 Jupyter未安装(不需要)
Code Runner运行 Python 代码块未安装(不需要)
Auto Card Link RendererObsidian 卡片链接未安装(内容无此格式)
quartz-mindmapMarkdown → 思维导图待评估
quartz-slideMarkdown → 幻灯片待评估

这是系列文章的第四篇: