警告
This document is not updated for ESP32C5 yet, so some of the content may not be correct.
This warning was automatically inserted due to the source file being in the add_warnings_pages list.
API 文档模板
备注
说明
使用此文件 (docs/zh_CN/api-reference/template.rst) 作为 API 参考文档模板。
API 参考文档需和 API 的头文件名称保持一致。
使用
..include::
从 API 文件夹中添加相应的说明文件。README.rst
example.rst
...
可选择在此文件中直接提供描述。
完成后,删除所有的说明信息(类似本说明)和多余的头部信息。
概述
备注
撰写说明
提供概述,简要说明 API 的用途和使用方法。
必要时提供代码片段,以说明特定函数的功能。
用此 文档 中介绍的方式区分不同的章节标题:
#
用于设置各部分,标题上下同时标记*
用于设置章标题,标题上下同时标记=
用于设置节标题-
用于设置小节标题^
用于设置小小节标题"
用于设置段落标题
应用示例
备注
撰写说明
准备一个或多个实际示例,展示此 API 的功能。
每个示例应遵循
esp-idf/examples/
文件夹中项目的模式。将示例放在此文件夹中,添加
README.md
文件。在
README.md
中对展示的功能进行概述。良好的概述让读者能够充分理解示例,而无需参考源代码。
按照示例的复杂程度,将代码描述分解成几个部分,并对每部分的功能进行概述。
必要时,添加流程图和应用程序的输出截图。
最后为本章节的每个示例添加对应链接,示例文件夹应位于
esp-idf/examples/
中。
API 参考
备注
撰写说明
ESP-IDF 仓库通过 用 Doxygen 从头文件中检索代码标记 的方式自动更新 API 参考文档。
通过调用 Sphinx 扩展工具
esp_extensions/run_doxygen.py
,对 docs/doxygen/Doxyfile 中INPUT
语句列出的所有头文件进行更新。INPUT
语句的每一行(以##
开头的注释除外)都包含一个到头文件*.h
的路径,用于生成相应的*.inc
文件:## ## Wi-Fi - API Reference ## ../components/esp32/include/esp_wifi.h \ ../components/esp32/include/esp_smartconfig.h \
头文件被展开时,
sdkconfig.h
中默认定义的宏以及在 SOC 特定include/soc/*_caps.h
头文件中定义的宏都会被展开。这样,头文件就可以根据IDF_TARGET
的值来添加或排除相关内容。*.inc
文件中包含每次文档构建时自动生成的 API 成员格式化参考。所有*.inc
文件都位于 Sphinx 的_build
路径下。如需查看生成指令,以esp_wifi.h
为例,运行python gen-dxd.py esp32/include/esp_wifi.h
。用以下语句在文档中显示
*.inc
文件的内容:.. include-build-file:: inc/esp_wifi.inc
你也可以不用
*.inc
文件,而使用自己的方式描述 API。参考示例:docs/en/api-reference/storage/fatfs.rst。以下为常见的
.. doxygen...::
指令:函数 -
.. doxygenfunction:: name_of_function
联合体 -
.. doxygenunion:: name_of_union
结构体 -
.. doxygenstruct:: name_of_structure
和:members:
宏 -
.. doxygendefine:: name_of_define
类定义 -
.. doxygentypedef:: name_of_type
枚举 -
.. doxygenenum:: name_of_enumeration
如需更多信息,请参考 Breathe 文档。
使用 link custom role 指令添加指向头文件的链接,如下所示:
* :component_file:`path_to/header_file.h`
在任何情况下,要生成 API 参考文档,应该更新文件 docs/doxygen/Doxyfile 并将其中的路径更新为正在添加文档的
*.h
头文件的路径。更改提交并构建文档后,可以查看文档的渲染效果。如有需要,为相应的头文件 纠正注释。