代码高亮与插件
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 Renderer | Obsidian 卡片链接 | 未安装(内容无此格式) |
| quartz-mindmap | Markdown → 思维导图 | 待评估 |
| quartz-slide | Markdown → 幻灯片 | 待评估 |
这是系列文章的第四篇:
