【发布时间】:2018-08-31 17:11:12
【问题描述】:
我有一个相当复杂的项目,我想用 doxygen 记录它。
我在记录代码方面没有问题,而且我还设法使用自定义 README.md 文件以及 Doxyfile 中的“USE_MDFILE_AS_MAINPAGE = README.md”指令创建了一个漂亮的首页。
我定义了几个组 (@defgroup),它们在我的文档中显示为“模块”。
除了常用的函数/变量/类型文档之外,我想为每个组添加一个“主页”以提供一般信息。
我尝试在组定义中添加自定义 MODULENAME.md 文件以及匹配的 @includedoc MODULENAME.md 条目,它似乎有效(我看到几行,如:“Generating docs for page md_mcu_noitr_coro_README...”),但我找不到页面是否以及在哪里已链接(我希望在模块的“详细说明”中看到它,因为如果我将一些文档内嵌在我放置“@includedoc”指令的位置,就会发生这种情况。
我的一个模块的 sn-p 是:
/**
* @file coro.h
* @brief definition of coroutine implementing functions.
*
* @date: Feb 8, 2018
* @author: myself
*
* @defgroup coro "Coroutine implementation in plain 'C'."
*
* @includedoc mcu_noitr/coro/README.md
* @{
*
*/
我做错了什么?
注意: 这也有点令人惊讶,我需要将整个路径从我的 Doxyfile 所在的位置放置,否则即使它位于包含 @ 的文件旁边,doxygen 也不会找到它987654331@命令。
【问题讨论】:
-
首先关于注释。您需要 Doxyfile 所在位置的相对路径/或者更好地说是 doxygen 启动位置的相对路径,这并不奇怪,因为可能有多个
README.md文件,此时 doxygen 应该做出猜测。 -
为什么要通过单独的文件来做。你不能直接在 defgroup 命令中包含降价代码吗?
-
@albert:我想添加一个单独的文件,因为它是大量的写作,它会将“真实代码”向下推几百行;另一个原因是使用真正的 Markdown 编辑器可以简化写作,而不是在多行“C”注释中。关于注释:我希望正常的“#include”行为:计算相对于包含文件的路径; Doxygen 将所有数据都猜对了。
-
关于地点和编辑的推理非常有效。关于“注意”,请在 doxygen 错误跟踪 (github.com/doxygen/doxygen/issues/new) 中提交问题。之前的cmets忘记了:你用的是哪个版本的doxygen?
-
刚刚做了一个小测试,看起来不起作用,据我所知这是由于降价解析的时刻。可能包含的文档必须经过“降价预处理”。可能最好在 doxygen 错误跟踪 (github.com/doxygen/doxygen/issues/new) 中提交问题,包括一个小的、自包含的示例(tar 或 zip 中的源+配置文件)以重现问题?跨度>
标签: doxygen