【发布时间】:2020-08-12 12:42:44
【问题描述】:
我已经看到 doxygen 可以通过配置文件设置 USE_MDFILE_AS_MAINPAGE 使用 .md (Markdown) 文件作为其输出文档主页。我还看到 .md 文件中的函数名称(例如 myfunc())将链接到该函数的文档。
有没有办法从源代码(例如 C 函数头)链接回 .md 文件的部分?
目前我正在使用 doxygen @page 特殊命令在源代码中描述几个与产品相关的概念,并且我可以通过 @ref 特殊命令让其他源代码参考这些页面。例如,我可以创建@page concept My Concept 并通过@ref concept 从其他地方链接到它。但我更愿意将这些概念部分记录在单独的以文档为中心的文件中,而不是在源代码文件中,因此将它们移至 .md 文件似乎是合乎逻辑的方法。
更新:下面的 albert 回答可能应该有效,但是对于我测试的 doxygen 版本(1.8.11 和 1.8.13),建议的解决方案存在以下问题:
-
包含标头 ID 属性(例如
{#label2})的 2 级标头(即以##开头的标头)不再出现在生成的 doxygen 输出中,并生成输出:“警告:在节外找到子节命令语境!”这显然是一个已知的错误。对我有用的一种解决方法是复制标题,其中一行包含标题 ID 属性,另一行不包含它。例如:## Header 2 {#label2}## Header 2 通过
@ref label2链接回这些 2 级标题的代码似乎不会链接回指定的部分,而是链接到包含该部分的页面的头部,如果页面是长和/或包含多个部分。
更新 2:显然上述问题 1 在 doxygen 版本 1.8.16 及更高版本中已修复。
【问题讨论】:
-
哪个 doxygen 版本?
-
目前1.8.13
-
当前版本是 1.8.18,但我的回答很可能也适用于 1.8.13