32

我有一个带有一组降价页面的项目,这些页面与链接相互链接,例如

[Go to this page](subdir/MyOtherPage.md)

这些页面都被 doxygen 拾取并出现在输出中,但链接没有更改为指向它们的新 html 再现。

我可以将链接更改为指向 html 页面,但我的项目托管在 github 上,然后这些链接将被破坏,因为 github 支持自动链接 markdown 页面。

除了外部链接之外,我在 doxygen 文档中看不到任何关于支持链接的内容。有没有办法让 doxygen 从降价链接生成 HTML 链接?

4

4 回答 4

20

根据 Doxygen 1.8.7,有三种方法可以做到这一点:

  • 使用原始问题中描述的标准降价超链接。
  • 使用 a@ref和前缀目标md_以及任何子目录。
  • 为页面命名并使用@ref来指代名称。

第一种方法很简单,并且在没有 Doxygen 的情况下也可以使用(例如,当您在 Github 上浏览代码存储库时)。

[Go to this page](subdir/MyOtherPage.md)

而第二种方法需要像这样链接它:

[Go to this page](@ref md_subdir_MyOtherPage)

显然这也是Doxygen 的主要作者规定的方式

最后,在第三种方法中,您需要为目标页面命名,然后链接到该名称。例子:

MyOtherPage.md有这个作为标题

# My Other Page Title {#MyOtherPageName}

然后像这样链接它

[Go to this page](@ref MyOtherPageName)
于 2014-11-03T08:58:44.333 回答
8

从 Doxygen 1.8.6 开始处理常规旧 Markdown 链接,例如[link text](docs/page.md). 不过,这有点奇怪——URL 必须与 Doxygen 工作目录相对(即不是 Doxyfile 或 .md 文件的目录,而是运行 Doxygen 的目录)。如果您注意到单击链接显示的是原始 Markdown 而不是呈现的 HTML,这意味着您的 URL 与 Doxygen 的工作目录无关。

于 2015-02-23T14:47:08.360 回答
2

此功能是在 Doxygen 1.8.6(2013 年 12 月)中添加的

Allow @ref to unlabeled markdown page by name, i.e. @ref mypage.md
Allow links to other markdown pages of the form [link text](page.md)

您可能需要在链接中包含文档目录才能使其工作,例如

[link text](docs/page.md)
于 2014-01-15T00:55:30.523 回答
0

以下步骤可能会解决问题,

  • 设置STRIP_FROM_PATH为 Doxyfile 目录。链接降价文件时相对路径存在问题。
  • 在 doxygen 源文件 src/docparser.cpp 的 2438 行号处附加以下代码,其中包含代码pd = Doxygen::pageSDict->find(target);(如果它还没有)。它修复了在页面列表中搜索的降价文件。

    if(pd == 0 && lang == SrcLangExt_Markdown) {pd = Doxygen::pageSDict->find(markdownFileNameToId(target));}

  • 最后编译 doxygen 并重试。

它对我有用。

于 2015-03-02T13:24:42.753 回答