Build API
您可以直接在 Node.js 应用中导入并使用 docmd 的构建引擎。这非常适合自定义 CI/CD 流水线、自动化的文档生成,以及在 monorepo 中预渲染文档。
安装
请确保 @docmd/core 已安装到您的项目:
npm install @docmd/core
核心函数
buildSite(configPath, options)
最主要的构建函数。它负责加载配置、解析 Markdown,并生成资源。
import { buildSite } from "@docmd/core";
async function runBuild() {
await buildSite("./docmd.config.json", {
"isDev": false,
offline: false,
zeroConfig: false
});
}
buildLive(options)
生成浏览器版 Live Editor 的 bundle。
import { buildLive } from "@docmd/core";
async function generateEditor() {
await buildLive({
"serve": false,
port: 3000
});
}
Workspace 管理
如要以编程方式管理 workspace,请使用专门的 workspace 函数。
isWorkspace(config)
当传入的配置对象符合 workspace schema 时返回 true。
detectWorkspace(configPath)
检测并加载 workspace 配置文件。返回规范化后的 WorkspaceRootConfig,若不存在则返回 null。
buildWorkspace(config, options)
构建 workspace 中的所有项目。会处理共享资源与项目专属前缀。
devWorkspace(config, options)
启动 workspace 的 dev 服务器。监听所有项目的变更,并执行定向重建。
import { detectWorkspace, buildWorkspace } from "@docmd/core";
async function buildAll() {
const config = await detectWorkspace("./docmd.config.json");
if (config) {
await buildWorkspace(config, { quiet: false });
}
}
示例:自定义流水线
将 docmd 包进更复杂的文档工作流:先生成动态内容,再构建,然后把产物搬到最终位置。
import { buildSite } from '@docmd/core';
import fs from 'fs-extra';
async function deploy() {
// 1. 生成动态内容
await fs.writeFile('./docs/dynamic.md', '# 自动生成的内容');
// 2. 执行构建
await buildSite('./docmd.config.json');
// 3. 移动产物
await fs.move('./site', './public/docs');
}
这套编程式 API 与 AI 驱动的文档 高度契合。Agent 可以在内容更新后触发构建,以校验完整性并自主完成部署。
下一步
- 插件 —— 扩展 docmd 而无需改动引擎。
- CLI 命令 —— 大多数 CI/CD 场景下的推荐路径。
- Workspaces —— 多项目场景下的配置参考。