使用插件
docmd 具有模块化插件架构。必需的插件随核心一起发布,无需安装。可选插件可以通过单一 CLI 命令安装。
安装插件
使用 docmd CLI 安装和移除插件:
# 安装插件
npx @docmd/core add <plugin-name>
# 移除插件
npx @docmd/core remove <plugin-name>
安装程序检测你的包管理器(npm、pnpm、yarn 或 bun)。它将短名称解析为完整的包名称,并将配置注入到你的 docmd.config.json 中。
使用 --verbose(或 -V)获取完整的安装程序输出:
npx @docmd/core add <plugin-name> -V
必需插件
这些插件与 @docmd/core 一起打包。无需安装。在你的 docmd.config.json 中启用它们:
{
"plugins": {
"search": {},
"seo": { "aiBots": false },
"sitemap": {},
"analytics": {},
"llms": {},
"mermaid": {},
"openapi": {},
"git": {}
}
}
Git 插件
Git 插件检测你的项目是否是 Git 仓库。如果不是,它会自动禁用自己。无需配置即可获取最后更新时间戳。
可选插件
可选插件需要在启用之前安装。
| 插件 | 安装命令 | 描述 |
|---|---|---|
| PWA | npx @docmd/core add pwa |
具有离线缓存的渐进式 Web 应用支持 |
| Threads | npx @docmd/core add threads |
存储在 Markdown 中的行内讨论评论 |
| Math | npx @docmd/core add math |
原生 KaTeX 和 LaTeX 数学渲染 |
docmd 采用可插拔架构。几乎所有核心功能(从搜索到 SEO 再到实时预览)都是作为插件实现的。这种设计确保了引擎保持轻量,同时允许开发者根据具体项目需求选择性地开启功能。
插件概览
| 插件 | 功能 |
|---|---|
| 搜索 (Search) | 提供高性能、离线优先的全文本搜索。 |
| SEO | 自动生成元标签、Sitemap 并控制 AI 爬虫访问。 |
| Mermaid | 渲染流程图、序列图和甘特图。 |
| LLMs | 生成机器可读的全量文档流以供 AI 训练或搜索。 |
| 实时预览 (Live) | 为自定义编辑器提供在浏览器中运行的渲染引擎。 |
生命周期钩子
插件可以通过连接到以下生命周期钩子来介入构建过程:
| 钩子 | 描述 |
|---|---|
onInit(ctx) |
在引擎启动且配置加载后立即运行 |
onPostBuild(ctx) |
在所有 HTML 文件生成后运行逻辑 |
translations(localeId) |
返回语言环境翻译后的 UI 字符串 |
actions |
可从浏览器通过 WebSocket RPC 调用的服务器端处理程序 |
events |
浏览器推送事件的“发后即忘”式处理程序 |
插件安全
插件系统提供内置的安全保证:
- 验证: 插件可以声明一个包含
name、version和capabilities的插件描述符。无效的描述符在加载时会被拒绝。 - 隔离: 每次钩子调用都包裹在 try/catch 边界内。一个损坏的插件不会导致构建崩溃或影响其他插件。
- 能力强制: 声明了能力的插件只能注册其已明确声明的钩子。未声明的钩子将被跳过并发出警告。
有关完整的 API 参考,请参阅 开发插件。
针对 AI 的透明架构 🤖
插件架构旨在具有 确定性。插件注入的每个元标签和脚本都是可追溯的,这允许 AI 代理(和人类开发人员)准确了解网站的行为,而不会产生隐藏的副作用。