@docmd/plugin-openapi 插件将 OpenAPI 3.x 规范文件(JSON 或 YAML)转换为结构化的、可搜索的 API 参考页面。遵循 docmd 的“零 JS”运行时理念,每个端点、参数表格和 Schema 模型都会在构建处理期间被编译为静态 HTML。

配置选项

docmd.config.json 中配置全局 OpenAPI 渲染参数:

选项 类型 默认值 技术描述
info boolean true 显示规范 info 块中的 API 标题、版本与描述。
download boolean false 添加原始 JSON/YAML 规范文件的直接下载链接。
summaryOnly boolean false 仅渲染高层 HTTP 方法与路径摘要,不展示完整的参数 Schema。
allowRawHtml boolean false 允许在规范描述字符串中使用未转义的原始 HTML。

全局配置示例

docmd.config.json
{
  "plugins": {
    "openapi": {
      "info": true,
      "download": true,
      "summaryOnly": false
    }
  }
}

用法与语法

使用带有 openapi 语言标记的围栏代码块嵌入 OpenAPI 规范。请指定源于您文档源码根目录的相对文件路径:

```openapi
assets/openapi.json
```

实时渲染效果

以下是 assets/docmd-api.json 的实时交互式渲染示例:

docmd Plugin API

v1.0.0

The official OpenAPI spec for docmd plugin developers. Use this to integrate docmd with your AI tools or custom build systems.

GET /hooks

List available hooks

Returns a list of all lifecycle hooks available for plugins.

Responses
StatusDescription
200 A list of hooks
array[string]
POST /render

Render markdown

Triggers the rendering engine for a specific markdown string.

Request Body *

application/json

FieldTypeDescriptionExample
content string
context object
Responses
StatusDescription
200 Rendered HTML
string

规范输出解析

插件会解析并渲染:

  • HTTP 方法徽章: 颜色编码徽章 (GET, POST, PUT, PATCH, DELETE)。
  • 端点路径: 带参数的路径字符串。
  • 参数表格: 名称、位置 (path, query, header, cookie)、数据类型、必填标志以及描述。
  • 请求与响应模型: 包含字段类型、数据格式、约束与默认值的结构化 Schema 表格。
  • 示例与请求体载荷: 多格式请求体与响应载荷示例 (application/json, application/xml 等)。
  • 隔离 Schema 表格横向滚动: 复杂嵌套的 Schema 表格可在 .oa-table-wrap 容器内独立横向滚动,避免撑开全页面视口。
  • 弃用警告横幅: 针对标记有 deprecated: true 的端点提供内联警告。
零-JS 构建期执行

所有 OpenAPI 规范均在编译期间解析为静态 HTML。运行时无需加载任何沉重的客户端 JavaScript 库,确保极简的页面加载时间与完全的搜索索引能力。

技术兼容性

规范特性 兼容性级别
OpenAPI 3.x (JSON) 原生支持
OpenAPI 3.x (YAML) 受支持 (需要 js-yaml 依赖项)
Swagger 2.0 旧版 (构建前需转换为 OpenAPI 3.x)
请求与响应示例 (Examples) 完整支持 (单示例与多示例映射)
内部 $ref Schemas 完整解析
多态 oneOf / anyOf 渲染为联合类型
已弃用的操作 原生支持内联标记