有一个Doxygen选项可指定API何时使用\since
标记出现,例如
///
/// Does foo
///
/// \since 1.5
///
void foo();
它会出现在foo()
的文档中。
我正在寻找的是一种自动创建包含所有API的页面的方法
出现在1.5中 - 即列出所有由\since 1.5
或可能标记的API
一些其他标签(如果有的话)。
修改:我尝试使用\ingroup
并创建一个包含所有新API的组页面,并且它可以正常运行。但它会将描述移到此页面,例如将新方法从类定义移动到页面" 1.2.3中的新内容"这不是我想要的。
答案 0 :(得分:7)
您想为当前的项目创建一个e x ternal 参考,\xrefitem
:
\xrefitem version_change_1_0_0 "Since 1.0.0" "Changes in 1.0.0" ...
<key> <heading> <list title> <text>
共享相同<key>
的所有项目都将显示在特殊生成的页面上。 <heading>
将用于在您使用 \xrefitem
的地方开始一个部分,而<list title>
将用作结果的标题页面(见下面的评论)。文字可以是任意的。
您获得的结果类似于\todo
和\bug
的列表和外观,您甚至可以将\bug
和\todo
视为
\bug <text> = \xrefitem bug "Bug" "List of bugs" <text>
\todo <text> = \xrefitem todo "Todo" "List of todos" <text>
不幸的是,密钥cannot contain dots:
ID "$"?[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]*
LABELID [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF\-]*
因此,您必须使用一个带(至少)两个参数的别名,一个用于标签,一个用于实际文本:
ALIASES += sinceversion{3}="\xrefitem version_changes\1 \"Since \2\" \"Changes in \2\" \3\n\n"
ALIASES += sinceversion{2}="\sinceversion{\1,\2,Introduced in this version.}"
如果你从不使用点,你当然可以简化别名。这将为您提供两个新命令:
\sinceversion{label, version}
\sinceversion{label, version, custom text}
在这两种情况下,标签必须只包含字母数字符号,版本可以是任意的。如果您没有提供自定义文字,&#34;在此版本中引入&#34;将会出现。
如果有标识为version_changes<label>
的页面,则会添加更改列表。请注意,\page
的标题将覆盖\xrefitem
给出的标题,这对主要版本来说非常方便。
以下是\sinceversion
的使用示例。请注意,如果您记录版本x.y.z的大量更改,则可能需要使用其他别名,例如ALIASES += since_vXYZ{1}="\sinceversion{X_Y_Z,X.Y.Z,\1}"
:
/** Foos around.
* \sinceversion{001,0.0.1}
*/
void foo(){}
/** Bars around.
* \sinceversion{001,0.0.1}
* \sinceversion{002,0.0.2,Removed a memory leak}
*/
void bar(){}
/** \page version_changes002 Changes in 0.0.2
*
* We found several memory leaks and removed them
*/