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 浏览器推送事件的“发后即忘”式处理程序

插件安全

插件系统提供内置的安全保证:

  • 验证: 插件可以声明一个包含 nameversioncapabilities 的插件描述符。无效的描述符在加载时会被拒绝。
  • 隔离: 每次钩子调用都包裹在 try/catch 边界内。一个损坏的插件不会导致构建崩溃或影响其他插件。
  • 能力强制: 声明了能力的插件只能注册其已明确声明的钩子。未声明的钩子将被跳过并发出警告。

有关完整的 API 参考,请参阅 开发插件

针对 AI 的透明架构 🤖

插件架构旨在具有 确定性。插件注入的每个元标签和脚本都是可追溯的,这允许 AI 代理(和人类开发人员)准确了解网站的行为,而不会产生隐藏的副作用。