如何在doxygen中的降价文档之间建立链接?

izb*_*izb 23 documentation markdown doxygen

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

[Go to this page](subdir/MyOtherPage.md)
Run Code Online (Sandbox Code Playgroud)

这些页面都被doxygen选中并出现在输出中,但链接不会改变为指向新的html再现.

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

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

adi*_*dib 16

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

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

第一种方法很简单,这也可以在没有Doxygen的情况下工作(例如,在Github上浏览代码库时).

[Go to this page](subdir/MyOtherPage.md)
Run Code Online (Sandbox Code Playgroud)

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

[Go to this page](@ref md_subdir_MyOtherPage)
Run Code Online (Sandbox Code Playgroud)

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

最后,在第三种方法中,您需要为目标页面指定一个名称,然后链接到该名称.例:

MyOtherPage.md有这样的作为标题

# My Other Page Title {#MyOtherPageName}
Run Code Online (Sandbox Code Playgroud)

然后像这样链接它

[Go to this page](@ref MyOtherPageName)
Run Code Online (Sandbox Code Playgroud)

  • 请注意 doxygen *1.8.7* 很重要,Centos 7 仍然带有 1.8.5,其中第三个选项不起作用。才三年多,最好保持doxygen的稳定。 (2认同)

Kyl*_*yle 8

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

  • 如果我没有错,尝试从另一个与 Doxygen 运行位置无关的 .md 文件中引用 [some](link/to/file.md) 会破坏 Gitlab(但不是 Doxygen)的一切。因此,这与同时在可查看的 repo 和 Doxygen 中具有相同的 md 文件链接从根本上是不兼容的。 (2认同)

roc*_*cko 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)
Run Code Online (Sandbox Code Playgroud)

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

[link text](docs/page.md)
Run Code Online (Sandbox Code Playgroud)

  • 我用的是1.8.7,还是不行。它始终引用 .md 文件的源(html 格式),而不是渲染的 (html) 页面。我使用“@ref”或“[此处](documentation.md)”并不重要。有解决办法吗? (4认同)