|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
本指南规定 xt-sdk 文档系统的组织方式、命名规范、链接规范和新增流程。所有新增/修改文档必须遵循本指南。
文档 放在它描述的代码附近 :
| 目录类型 | README.md 角色 | 标签后缀 | 示例 |
|---|---|---|---|
| 单模块目录 | README.md 就是模块文档 | __doc | components/xt_vfs/README.md |
| 多模块目录 | README.md 是纯索引页,各模块单独 .md | __sum_doc | components/xt_task/README.md |
所有 doxygen 页面标签用 双下划线 作为类型分隔符:
| 标签类型 | 格式 | 示例 |
|---|---|---|
| 模块文档 | {组件名}__doc | {#xt_vfs__doc} |
| 多模块索引页 | {目录名}__sum_doc | {#xt_task__sum_doc} |
| 测试文档 | {模块名}__tests_doc | {#xt_vfs__tests_doc} |
| 开发者 API 分组(@defgroup) | {组件名}__dev | \@defgroup 开发者接口 |
| 主页 | {#mainpage} | doxygen 特殊识别 |
用 markdown 原生语法,不用 @page 命令:
前提:Doxyfile 中 IMPLICIT_DIR_DOCS = NO。
单下划线 _dev 与 C 标识符冲突(device 缩写也是 _dev)。
索引页(README.md)引用子文档时,表格内用双链接:
正文中引用其他页面或 API 实体时用 @ref:
| 路径格式 | doxygen 行为 | 建议 |
|---|---|---|
| ./xxx(同目录/子目录) | 正确解析 | 推荐 |
| ../xxx(父目录) | 相对于项目根目录解析,通常错误 | 避免 ,改用 @ref |
以下写法会导致 doxygen 生成错误链接或空页面:
正确做法:用 \@subpage 标签名 或 \@ref 标签名,标签名是 {#标签} 中声明的名字。
| 配置项 | 值 | 原因 |
|---|---|---|
| IMPLICIT_DIR_DOCS | NO | 子目录 README.md 作为普通页面,# 标题 {#标签} 生效 |
| USE_MDFILE_AS_MAINPAGE | ../mainpage.md | 根目录 mainpage.md 作为首页 |
| MARKDOWN_SUPPORT | YES | 启用 markdown 支持 |
| GENERATE_TREEVIEW | YES | 生成左侧导航树 |
| HTML_DYNAMIC_SECTIONS | YES | group 页面段落可折叠 |
doxygen 的 markdown 解析中, ** 加粗标记的 前后都必须是 ASCII 空格 (或行首/行尾/表格单元格边界),不能紧跟中文字符或中文全角标点(如 : 、 , 、 。 、 ( 、 ) )。否则 ** 不被识别为加粗标记,字面输出 **文字** 。
此外,未识别的 ** 会干扰后续 markdown 解析(包括水平线 --- 、列表等),产生连锁错误——一处加粗写错可能导致后续所有 --- 都不渲染。
正确写法( ** 前后加 ASCII 空格):
错误写法( ** 紧跟中文标点/中文字符):
行内代码同样受此规则影响 :反引号标记两侧也需要 ASCII 空格,否则紧跟中文标点时反引号不被识别,字面输出。
统一规律 :doxygen 的所有行内标记(加粗、行内代码、斜体等)两侧都需要 ASCII 空格,不能紧跟中文字符或中文全角标点。围栏代码块和缩进代码块内的内容不受此限制。
doxygen 在 markdown 文档中仍然会解析 @ 和 \ 开头的命令。正文中提及 doxygen 命令名时,必须转义,否则 doxygen 会将其识别为命令并执行。
反引号不能保护 @ 命令 :行内代码中的 @ 命令仍会被 doxygen 识别,反引号会被剥离。必须去掉反引号,用转义格式。
块级命令特别危险 : @code / @endcode / @verbatim / @endverbatim 是"块级"命令,doxygen 识别后会等待对应的 end 命令, 吞掉后续所有 markdown 内容 ,导致标题变 <p> 、水平线 --- 不渲染、表格不渲染等连锁崩溃。
安全区域 (不需要转义):
排查方法 :当 markdown 文档出现结构异常(标题不渲染、 --- 不变水平线、表格变成纯文本段落), 优先检查正文中是否有未转义的 @ 命令 。可用 doxygen -d markdown 查看解析过程。
以新增 xt_socket(跨平台 Socket) 文档为例:
模块文档(__doc)推荐以下章节结构。根据模块特点可增减,但核心章节(概述、API 参考、常见模式、反模式)建议保留。