【问题标题】:Doxygen globally defined reference linksDoxygen 全局定义的参考链接
【发布时间】:2014-01-31 11:56:00
【问题描述】:

在 Doxygen 中,您使用参考链接:分别定义它们,然后在文本中引用它们。

/**
 * This is a documentation. Here I link [std::string] to an external web page.
 *
 * The next line is the link definition:
 *
 * [std::string]: http://en.cppreference.com/w/cpp/string/basic_string "std::string documentation"
*/

但是,链接定义似乎只能在文档块中看到。即使在同一页面上的其他文档块上也看不到它。

我想定义一些链接一次,然后在任何地方(在不同的页面上)使用它们。

这可能吗?


编辑(后续问题)

为了实现您的目标,我认为您最好的办法是使用 ALIAS 工具。

我已经设法使用这样的别名进行设置:

ALIASES += std_string="<a href=\"http://en.cppreference.com/w/cpp/string/basic_string\" title=\"std::string documentation\" target=\"_blank\">std::string</a> "
ALIASES += std_vector="<a href=\"http://en.cppreference.com/w/cpp/container/vector\" title=\"std::vector documentation\" target=\"_blank\">std::vector</a> "

并使用它:

@std_string
@std_vector

基本上每个链接都有一个别名。

可以用一个带参数的别名来实现吗?用途是:

@std_ref std::string
@std_ref std::vector

问题是名称(参数)和链接之间需要某种映射:

std::string -> http://en.cppreference.com/w/cpp/string/basic_string 
std::vector -> http://en.cppreference.com/w/cpp/container/vector

如果一个参数是链接的不同部分,我知道可以做到这一点,例如:

@std_ref std::string string/basic_string 
@std_ref std::vector container/vector

但这很丑陋,容易出错,并且每次都需要检查链接应该是什么。

【问题讨论】:

    标签: c++ documentation doxygen


    【解决方案1】:

    值得注意的是,您当前使用的是 Doxygen 对 Markdown 的支持所附带的符号 - 它不是用于外部链接的 doxygen 方法。原来的Doxygen方法是内联插入一个HTML链接...

    &lt;a href="linkURL"&gt;link text&lt;/a&gt;

    ...但这对您原来的问题没有影响。

    为了实现您的目标,我认为您最好的办法是使用 ALIAS 工具。相关手册页为here。使用它们,您应该能够定义像 std-string 这样的别名,并让它在您使用别名的任何地方插入 HTML 链接。

    别名在 doxyfile 配置文件中设置(在手册的this section 中)

    【讨论】:

    • 谢谢。那行得通。我有一个关于只使用一个带参数的别名而不是每个链接的别名的问题。如果您能检查我的问题编辑,我将不胜感激。
    • 我从来不需要混合使用别名和参数,所以你超出了我的经验。对不起,我们已经到了你的猜测和我的猜测一样好的阶段:)
    • 没关系,你的回答解决了我的问题,我只是想更进一步。
    【解决方案2】:

    可以为要链接到的每个 C++ 关键字手动设置别名,但更好的方法是使用 doxygen TAGFILES 功能。

    标记文件基本上是在外部源中找到的实体的紧凑表示。 Doxygen 可以生成和读取标签文件。

    要为您的项目生成标签文件,只需将标签文件的名称放在配置文件中的 GENERATE_TAGFILE 选项之后即可。

    要将一个或多个外部项目的输出与您自己的项目相结合,您应该在配置文件中的 TAGFILES 选项之后指定标记文件的名称。

    Doxygen 有一整页专门解释how to link to external documentation

    cppreference.com 已经为您设置了一个标签文件,其中包含一些basic instructions

    对于不耐烦的人:

    1. 下载 File:cppreference-doxygen-web.tag.xml 以直接链接到 cppreference.com 网站。

    2. 将此行添加到您的 Doxyfile:

      TAGFILES += "location/of/cppreference-doxygen-web.tag.xml=http://en.cppreference.com/w/"

    【讨论】:

    • 您能否澄清第3点。如何在源代码中实际使用这些标签?如果我这样做,例如"@see std::distance" 不起作用。
    猜你喜欢
    • 2014-07-26
    • 2019-07-24
    • 2017-05-14
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2014-01-07
    • 2021-08-13
    • 2010-10-19
    相关资源
    最近更新 更多