v0.9.8 - OpenAPI 可折叠操作与模式约束、LLMs 提示词与分组、链接验证优化及土耳其语国际化

Highlights

docmd v0.9.8 带来了一系列重大改进:支持 OpenAPI 接口操作交互式折叠与详细数据模式约束展示、为 LLMs 插件提供自定义系统提示词与章节分组、解决链接验证器中的多项边界异常、保证 MCP JSON-RPC 客户端标准输出纯净无污染,并在全量 UI 模板中实现完整的国际化对齐与土耳其语支持。

  • OpenAPI 接口操作与模式约束 (@docmd/plugin-openapi):OpenAPI 接口操作块支持交互式展开与折叠,大幅优化大型 API 文档的阅读体验(由 @w666 贡献于 PR #255,关闭 #254)。接口参数和模式定义清晰展示校验约束(最大/最小值、字符长度、正则表达式、必填标识)以及数组项。
  • 打包 OpenAPI 运行时依赖:直接将 js-yaml 与 markdown-it 作为 @docmd/plugin-openapi 的运行时依赖打包(由 @w666 贡献于 PR #255),杜绝独立执行或容器环境中的模块解析失败。
  • LLMs 插件提示词配置 (@docmd/plugin-llms):新增顶级 prompt 配置项,允许在生成的 llms.txt 顶部预置给 AI 编码助手的指导准则与提示词。同时,llms.txt 中的文档链接按目录章节进行结构化分组展示。
  • 链接验证器强化 (@docmd/core):链接验证能够正确剔除可选的 Markdown 链接标题([文本](url "标题"))并跳过围栏代码块内的示例链接(关闭 #259)。同时精准解析 /assets/ 绝对路径,且不再对空替代文本的图片链接产生误报(由 @Aryan007-dev 贡献于 PR #256,关闭 #250 与 #251)。
  • 纯净的 MCP 标准输出 (@docmd/core):在运行 docmd mcp 时屏蔽 stdout 上的 TUI 欢迎横幅(由 @vishalhabib99 贡献于 PR #260),避免 ANSI 转义字符干扰 Claude Desktop、Cursor 等客户端的 JSON-RPC 协议通信。
  • 全量国际化 (i18n) 对齐与土耳其语支持 (@docmd/ui):新增完整的土耳其语(tr)界面翻译(由 @KeuqS 贡献于 PR #258)和 README.tr.md。针对默认模板与 Summer 模板,统筹对齐英语、法语、印地语、日语、韩语、俄语、土耳其语、德语、西班牙语和中文这 10 种语言的全部翻译键。
  • 优化图片说明样式 (@docmd/ui):将原先厚重的背景色框替换为居中、淡雅斜体的现代化说明文字(fit-content 布局,由 @w666 贡献于 PR #253,关闭 #252),更自然地与图表融合。
  • 依赖维护与安全性:更新 npm 依赖包组(PR #257),将 katex 和 sharp 覆盖至安全补丁版本,清理源码注释中残留的内部 Issue 编号,并更新工作区依赖包。

OpenAPI: 可折叠操作与模式约束 (@docmd/plugin-openapi)

由 @w666 贡献于 PR #255(关闭 Issue #254),v0.9.8 显著增强了 OpenAPI/Swagger 规范的渲染能力:

  • 可折叠接口操作:各个 API 操作可自由折叠与展开,配合目录导航(TOC)快速跳转定位。
  • 模式校验约束展示:请求与响应的模式定义表格完整呈现以下校验约束:
    • 字符串长度限制(minLength, maxLength)
    • 数值范围限制(minimum, maximum, exclusiveMinimum, exclusiveMaximum)
    • 正则表达式模式(pattern)
    • 醒目的必填(required)徽标
    • 数组元素类型及模式规范
  • 引用请求体支持:顺畅解析请求体及复杂对象中引用的 $ref 指针。
  • 运行时依赖内建:直接引入 markdown-it 和 js-yaml,无需宿主环境传递依赖。

LLMs 插件 — 提示词配置与文档分组 (@docmd/plugin-llms)

  • 自定义系统提示词:在 plugins.llms 中配置 prompt 字段,该内容将直接置于生成的 /llms.txt 首部,便于为 AI 模型设定项目特定的编码规约与上下文。
  • 章节分组:llms.txt 中的页面链接按文档目录层级分节呈现,更利于大模型上下文理解。

链接验证强化 (@docmd/core)

docmd validate 命令与 MCP 验证工具修复了以下边界问题:

  • Markdown 链接标题与代码块跳过 (Issue #259):在路径匹配前自动剔除标题属性。解析 Token 时自动跟踪并忽略三重反引号和波浪线包裹的代码块,避免将示例代码误判为断链。
  • 空替代文本与资源路径 (由 @Aryan007-dev 贡献于 PR #256,关闭 #250、#251):正则全面覆盖空 alt 文本图片,并将以 /assets/ 开头的绝对链接定位至项目根目录的 assets 文件夹。
  • 排除规则继承:config.exclude 规则现已完整传递给 validateLinks。

纯净的 MCP JSON-RPC 输出 (@docmd/core)

由 @vishalhabib99 贡献于 PR #260:

  • 在 packages/core/src/bin/docmd.ts 的横幅屏蔽清单中加入了 'mcp'。
  • MCP 服务启动时不再向 stdout 发送非 JSON 内容,彻底避免外部 MCP 宿主(如 Claude Desktop、Cursor)出现 JSON 解析异常。

国际化 (i18n) 对齐与土耳其语支持 (@docmd/ui)

  • 土耳其语(tr)界面 (由 @KeuqS 贡献于 PR #258):提供全量 UI 元素翻译(tr.json)。
  • 土耳其语文档:新增 README.tr.md,并在所有语言版本的 README 顶部加入土耳其语入口。
  • 翻译键全面对齐:统一 10 种受支持语言的翻译条目,消除缺失。
  • 多模板一致性:Default 模板与 Summer 模板均已完整应用主题切换、专注模式与复制提示等国际化文本。

图片说明样式优化 (@docmd/ui)

由 @w666 贡献于 PR #253(关闭 Issue #252):

  • 移除原先的实色背景框,采用现代极简的图片说明设计。
  • 文本自适应宽度居中展示,辅以低对比度斜体排版,提升阅读美感。

社区贡献者与 Pull Requests

特别鸣谢为 v0.9.8 版本做出贡献的所有社区成员:

  • @w666:贡献 PR #255(OpenAPI 可折叠操作、数据模式约束与内建依赖,关闭 #254)以及 PR #253(居中斜体图片说明,关闭 #252)。
  • @Aryan007-dev:贡献 PR #256(链接验证空 alt 文本与 /assets/ 绝对路径处理,关闭 #250 与 #251)。
  • @KeuqS:贡献 PR #258(土耳其语 UI 翻译字典与语言注册)。
  • @vishalhabib99:贡献 PR #260(docmd mcp 标准输出横幅屏蔽)。

0.9.9 版本展望

  • 预检批量安装后的软件包完整性校验。
  • 拓展 .gitignore 模式匹配,支持否定模式(!)与子目录局部忽略文件。
  • 进一步提升多语言全文检索索引构建性能。