Doxygen分组

7
我有一个关于Doxygen中页面和组的问题。我有一个项目,其中使用@defgroup和@ingroup命令对类等进行分组。到目前为止,这个方式运作良好。
现在,我想通过Markdown页面为项目添加特殊文档。这些页面应该出现在专用模块(组)中。我尝试使用@page和@subpage命令创建页面。这可以正常工作,但页面在菜单中显示为空白。
所以我尝试使用@ingroup将它们添加到组内。但是按照我的猜测,这并不起作用。是否有可能将页面添加到模块(组)中?
结果应如下所示:
Project
|-- Modules
| |-- "Module1"
| | |-- documentation page1 (from *.md file)
| | |-- class documentation
| |-- "Module2"
| | |-- documentation page2
| | |-- class documentation

我希望你能帮助我!

2个回答

9
在这种情况下,我们有两种类型的分组文档:
  1. 源文件中的文档
  2. markdown文件中的文档
我们需要为这些组创建树形结构。
例如,我们创建2个组:
  1. 主应用程序 使用源代码文档
  2. 使用文件 library.md 中的文档
主应用程序 组的C++源代码可能如下所示:
/** @defgroup app Main Application */

/** @addtogroup app
  * @brief Main application description.
  *
  * @{
  */

int main() { return 0; } //do nothing

/** @} */

MarkDown文件 library.md 包含简单的文本:

Library File {#library}
============

Library Page Content from library.md.

现在为了定义结构,我们需要创建一个名为mainpage.md的文件,并添加以下内容:
Pages {#mainpage}
============

Content:

- @subpage library

@defgroup Library
@addtogroup Library
@copydoc library
@{
@}

@subpage 标签用于将所有页面隐藏到一个根目录项目(Pages)中。 @defgroup 标签为Markdown文档创建新的组。 @copydoc 标签将库页的内容复制到Library组。

在截图中,您可以看到结果结构:

Doxygen groups and pages

请注意,在这种情况下“Module Group”名称和“Page”名称可能不同。您还可以使用 @copydoc标签将MarkDown文件中的内容粘贴到源代码文档中。

参考:http://www.doxygen.nl/manual/grouping.html


0

我已经使用@{和@}命令完成了它,它的工作原理如下 -

/**  
 * @defgroup module_name Sample Module   
 * @{   
 *     @page page_name [Optional Page Heading]   
 *     here will be the texts for the page ...    
 * @}   
 */   

如果您已经在某个地方定义了模块,那么可能需要使用 @addtogroup 而不是 @defgroup。
希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接