常规配置
常规配置
docmd.config.json 文件作为文档工作区的核心配置清单。它负责管理站点品牌、导航侧边栏、国际化参数以及静态站点编译器选项。
配置架构格式
docmd 支持 docmd.config.jsonc 和 docmd.config.json。这两种格式均支持单行(//)注释、多行(/* */)注释和末尾逗号(trailing commas):
docmd.config.jsonc
{
// 站点品牌与规范地址
"title": "我的技术文档",
"url": "https://docs.example.com",
/* 源码与构建输出目录 */
"src": "docs",
"out": "site",
"base": "/",
}
对于需要环境变量或程序化逻辑的动态设置,完全支持 docmd.config.ts 和 docmd.config.js:
TypeScript
JavaScript
docmd.config.ts
import { UserConfig } from '@docmd/api';
const config: UserConfig = {
title: process.env.DOCS_TITLE || '我的技术文档',
src: 'docs',
out: 'site'
};
export default config;
docmd.config.js
module.exports = {
title: process.env.DOCS_TITLE || '我的技术文档',
src: 'docs',
out: 'site'
};
核心设置
这些顶层属性配置基础路径和全局编译器选项:
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
title |
String |
"Documentation" |
在导航标头和浏览器标签页中显示的正式站点标题。 |
url |
String |
"" |
规范站点 URL。对于搜索引擎优化、sitemap 生成和 OpenGraph 元数据至关重要。 |
src |
String |
"docs" |
包含源 Markdown (.md) 文件的相对目录。 |
out |
String |
"site" |
编译器生成生产静态包的相对路径。 |
base |
String |
"/" |
根 URL 路径前缀(例如托管在子文件夹中时为 /docs/)。 |
tmp |
String |
null |
临时构建缓存目录。默认为隔离的系统临时文件夹。 |
engine |
String |
"js" |
处理引擎:"js"(默认纯 JavaScript 引擎)或 "rust"(通过 @docmd/engine-rust 的原生加速器)。 |
i18n |
Object |
null |
多语言参数。参阅 多语言指南。 |
plugins |
Object |
{} |
标准及第三方插件配置映射。参阅 插件指南。 |
向后兼容性
docmd 对早期配置清单保持 100% 向后兼容:
- 传统的根级键(
siteTitle、siteUrl、srcDir、outputDir)会无缝映射到现代键(title、url、src、out)。 customJs和customCss会被映射到theme.customJs与theme.customCss。htmlPolicy会映射到security.html。- 根级别的
focusMode和print会映射到layout.focusMode与layout.print。
品牌与标识
在 docmd.config.json 中配置品牌 Logo、浏览器 Favicon 以及自定义样式表或客户端脚本:
docmd.config.json
{
"logo": {
"light": "assets/images/logo-dark.png",
"dark": "assets/images/logo-light.png",
"href": "/",
"alt": "公司 Logo",
"height": "32px"
},
"favicon": "assets/favicon.ico",
"theme": {
"name": "default",
"appearance": "system",
"customCss": [
"/assets/css/branding.css"
],
"customJs": [
"/assets/js/feedback.js"
]
}
}
UI 布局与行为
配置标头、侧边栏、搜索位置、主题切换与阅读工具:
docmd.config.json
{
"layout": {
"spa": true,
"header": {
"enabled": true
},
"sidebar": {
"collapsible": true,
"defaultCollapsed": false
},
"optionsMenu": {
"position": "header",
"components": {
"search": true,
"themeSwitch": true
}
},
"focusMode": false,
"print": false,
"copyCode": true,
"pageNavigation": true,
"copyWidgets": {
"enabled": true,
"raw": true,
"context": true
}
}
}
有关全面的视觉自定义选项,请参阅 布局与 UI 区域 指南。
内容与安全策略
微调 docmd 如何解析 Markdown 以及执行 HTML 安全策略:
docmd.config.json
{
"minify": true,
"autoTitleFromH1": true,
"markdown": {
"breaks": true,
"linkify": true,
"typographer": true,
"linkifyDefaultScheme": "https"
},
"security": {
"html": "allow"
}
}
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
minify |
Boolean |
true |
压缩编译后的 HTML、CSS 和 JS 资源,以获得最大加载性能。 |
autoTitleFromH1 |
Boolean |
true |
当省略 frontmatter title 时,将文档的第一个 # H1 标题用作标题。 |
markdown.breaks |
Boolean |
true |
将软换行转换为换行符。如果手动在 80 列处换行,请设置为 false。 |
markdown.linkify |
Boolean |
true |
自动将 URL 文本和裸域名转换为可点击链接。设置为 false 禁用自动链接。 |
markdown.typographer |
Boolean |
true |
启用语言通用的排版替换(引号、破折号和符号)。设置为 false 保持原样。 |
markdown.linkifyDefaultScheme |
String |
"https" |
裸域名自动链接时前置的 URL 协议(例如 github.com → https://github.com)。仅在没有 HTTPS 的内部或旧版环境中使用 "http"。 |
security.html |
String |
"allow" |
HTML 净化模式:"allow"、"escape" 或 "strip"。参阅 安全指南。 |
layout.copyCode |
Boolean |
true |
在语法高亮的代码块上渲染“复制代码”按钮。 |
layout.pageNavigation |
Boolean |
true |
在文章底部渲染“上一页”和“下一页”导航链接。 |
layout.focusMode |
Boolean |
false |
启用免打扰专注模式,支持快捷键(Alt+F)。 |
layout.print |
Boolean |
false |
在文章操作栏和专注工具栏中启用打印按钮。 |
Git 集成替换 editLink
独立的 editLink 配置已统合到原生 Git 插件 中。它会展示编辑链接、提交时间戳和贡献者元数据。