Doxygen全局定义了参考链接

时间:2014-01-31 11:56:01

标签: c++ documentation doxygen

在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

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

2 个答案:

答案 0 :(得分:1)

值得注意的是,您目前正在使用的是只有Doxygen支持 Markdown 的符号 - 它不是外部链接的doxygen方法。最初的Doxygen方法是内联插入HTML链接......

<a href="linkURL">link text</a>

...但这对你原来的问题没有任何影响。

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

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

答案 1 :(得分:0)

可以手动为每个要链接的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/