Doxygen中的动态超链接引用

时间:2018-03-29 12:34:27

标签: doxygen

Doxygen构建引用如链接只能在某处定义,对它的任何引用都会得到相应的重定向吗? 这将允许指向正确资源的\see命令,而无需在代码中的任何位置复制URL,同时在需要时可以轻松更改所述链接。

生成的文档看起来有点像这样:

mainpage.md

  

此处定义了有用的链接

     

A guide to something
  Datasheet of something

source.c文件参考

  

(...)
  另见
  A guide to something //指向mainfile.md中定义的URL

[修改] 感谢@albert在评论中,我已经设法使用\snippetdoc,但是在block-id之后的任何文本都会使doxygen无法呈现片段。

工作示例:
知道我的链接是在docs / mainpage.dox文件中定义的,如下所示:

[url_to_link1]
<a href="linkToSomething">Link description</a>
[url_to_link1]

[url_to_link2]
<a href="linkToSomething">Link description</a>
[url_to_link2]

这有效:

/**
* \file
* \section links "Useful Links"
* - \snippetdoc docs/mainpage.dox url_to_link1
* - \snippetdoc docs/mainpage.dox url_to_link2
*/

这不是:

/**
* \file
* \brief     Some function definition
* \see       API reference on specific subject (more info: \snippetdoc docs/mainpage.dox url_to_link1)
*/

Doxygen版本是1.8.14

1 个答案:

答案 0 :(得分:0)

如问题和评论中所示,此问题的解决方案在于\snippetdoc命令,另一种方法是为ALIAS定义(在Doxyfile doxygen配置文件中)引用并在所需位置使用已定义的命令/别名。

如OP所示,通过\snippetdoc可能的解决方案是:

/**
* \file
* \section links "Useful Links"
* - \snippetdoc docs/mainpage.dox url_to_link1
* - \snippetdoc docs/mainpage.dox url_to_link2
*/

以下版本无效,如OP所示:

/**
* \file
* \brief     Some function definition
* \see       API reference on specific subject (more info: \snippetdoc docs/mainpage.dox url_to_link1)
*/

问题是\snippetdoc的定义是\snippetdoc <file-name> ( block_id ),其中(block_id)表示它读到行的末尾(参见doxygen文档),因此结束{{1} }}是)的一部分,无法解析。

可能更好的实施可能是block_id,因此<block_id>只是一个单词。对此的问题在于它可能会破坏现有文档,例如block_id中使用了空格或点。

这个问题有很多解决方案:

1)将结束block_id定义为)的一部分(在非工作版本中):

block_id

2)将结束[url_to_link1)] <a href="linkToSomething">Link description</a>) [url_to_link1)] 放在下一行(定义可以保留在问题中):

)

3)定义2个定义:

/**
* \file
* \brief     Some function definition
* \see       API reference on specific subject (more info: \snippetdoc docs/mainpage.dox url_to_link1
*            )
*/

I通用溶液2)是作为溶液的优选溶液。 [url_to_link1)] <a href="linkToSomething">Link description</a>) [url_to_link1)] [url_to_link1] <a href="linkToSomething">Link description</a> [url_to_link1] 之后的所有文字都必须在下一行。