在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
但这很丑陋,容易出错,需要每次检查链接应该是什么。
答案 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的标记文件。
对于不耐烦的人:
下载File:cppreference-doxygen-web.tag.xml以直接链接到cppreference.com网站。
将此行添加到您的Doxyfile:
TAGFILES + =“location / of / cppreference-doxygen-web.tag.xml = http://en.cppreference.com/w/”