例如,有一个Doxygen选项用于指定API何时使用\since
标记出现
/// /// Does foo /// /// \since 1.5 /// void foo();
它会出现在foo()
文档中.
我正在寻找一种自动创建页面的方法,该页面包含1.5中出现的所有API - 即列出所有标记的API \since 1.5
或可能的其他标记(如果可用).
编辑:我尝试使用\ingroup
并创建一个包含所有新API的组页面,它可以工作.但它将描述移到此页面,例如将一个新方法从类定义移动到页面"1.2.3中的新建",这不是我想要的.
您想要为当前项创建一个e x ternal 参考,a :\xrefitem
\xrefitem version_change_1_0_0 "Since 1.0.0" "Changes in 1.0.0" ...
共享相同内容的所有项目
都将显示在特殊生成的页面上.在
将用于启动在你的地方部分使用 \xrefitem
,而
将作为一个标题为结果页面(见下文说明).文字可以是任意的.
你得到的结果是类似的名单和出场\todo
和\bug
,你甚至可以认为\bug
和\todo
作为实施
\bug= \xrefitem bug "Bug" "List of bugs" \todo = \xrefitem todo "Todo" "List of todos"
不幸的是,钥匙不能包含点:
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}
在这两种情况下,标签只能包含字母数字符号,版本可以是任意的.如果您不提供自定义文本,将显示"在此版本中引入".
如果有包含标识符的页面,version_changes
则会添加更改列表.请注意,\page
标题将覆盖由标题给出的标题\xrefitem
,这对于主要版本来说非常方便.
这是一个\sinceversion
使用的例子.请注意,您可能希望使用其他别名,例如,ALIASES += since_vXYZ{1}="\sinceversion{X_Y_Z,X.Y.Z,\1}"
如果您记录了xyz版本的大量更改:
/** 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 */