文档中的所有命令都以反斜杠 (\) 或 at 符号 (@) 开头。如果您愿意,可以将下面所有以反斜杠开头的命令替换为以 at 符号开头的对应命令。
某些命令有一个或多个参数。每个参数都有一定的范围。
如果除了上述参数说明符之外还使用了 [方括号],则参数是可选的,除非它们放在引号之间,在这种情况下,它们是命令参数的强制部分。
这是按字母顺序排列的所有命令的列表,其中包含指向其文档的引用:
以下小节提供了 Doxygen 识别的所有命令的列表。无法识别的命令将视为普通文本。
定义一个组,就像 \defgroup 一样,但与该命令不同的是,多次使用相同的 <名称> 不会产生警告,而是会产生一个具有合并文档的组以及在任何命令中找到的第一个标题。
标题是可选的,因此该命令也可以用于将多个实体添加到现有组,如下所示,使用 @{
和 @}
:
/*! \addtogroup mygrp * Additional documentation for group 'mygrp' * @{ */ /*! * A function */ void func1() { } /*! Another function */ void func2() { } /*! @} */
当此命令放置在函数或方法的注释块中,并且 HAVE_DOT 设置为 YES
时,Doxygen 将为该函数生成调用图(前提是函数或方法的实现调用了其他已记录的函数)。无论 CALL_GRAPH 的值如何,都将生成调用图。
当此命令放置在函数或方法的注释块中时,Doxygen 将不会为该函数生成调用图。无论 CALL_GRAPH 的值如何,都不会生成调用图。
当此命令放置在函数或方法的注释块中,并且 HAVE_DOT 设置为 YES
时,Doxygen 将为该函数生成调用者图(前提是函数或方法的实现被其他已记录的函数调用)。无论 CALLER_GRAPH 的值如何,都将生成调用者图。
当此命令放置在函数或方法的注释块中时,Doxygen 将不会为该函数生成调用者图。无论 CALLER_GRAPH 的值如何,都不会生成调用者图。
当此命令放置在函数、方法或变量的注释块中时,Doxygen 将为该函数、方法、变量生成一个概述,概述中列出调用/使用它的已记录的函数和方法。无论 REFERENCED_BY_RELATION 的值如何,都将生成概述。
当此命令放置在函数、方法或变量的注释块中时,Doxygen 将不会为该函数、方法或变量生成概述,其中列出调用/使用它的函数和方法。无论 REFERENCED_BY_RELATION 的值如何,都不会生成概述。
当此命令放置在函数或方法的注释块中时,Doxygen 将为该函数或方法生成一个概述,其中列出调用它的函数和方法。无论 REFERENCES_RELATION 的值如何,都将生成概述。
当此命令放置在函数或方法的注释块中时,Doxygen 将不会为该函数或方法生成概述,其中列出调用它的函数和方法。无论 REFERENCES_RELATION 的值如何,都不会生成概述。
当此命令放置在函数、多行宏、枚举或列表初始化的变量的注释块中时,Doxygen 将为该成员生成内联源代码。无论 INLINE_SOURCES 的值如何,都将生成内联源代码。
当此命令放置在函数、多行宏、枚举或列表初始化的变量的注释块中时,Doxygen 将不会为该成员生成内联源代码。无论 INLINE_SOURCES 的值如何,都不会生成内联源代码。
当此命令放置在文件的注释块中时,Doxygen 将为该文件生成一个包含图。无论 INCLUDE_GRAPH 的值如何,都会生成包含图。
当此命令放置在文件的注释块中时,Doxygen 将不会为该文件生成包含图。无论 INCLUDE_GRAPH 的值如何,都不会生成包含图。
当此命令放置在包含文件的注释块中时,Doxygen 将为该包含文件生成一个被包含图。无论 INCLUDED_BY_GRAPH 的值如何,都会生成被包含图。
当此命令放置在包含文件的注释块中时,Doxygen 将不会为该包含文件生成被包含图。无论 INCLUDED_BY_GRAPH 的值如何,都不会生成被包含图。
当此命令放置在目录的注释块中(请参阅章节 \dir)时,Doxygen 将为该目录生成目录图。无论 DIRECTORY_GRAPH 的值如何,都会生成目录图。
当此命令放置在目录的注释块中(请参阅章节 \dir)时,Doxygen 将不会为该目录生成目录图。无论 DIRECTORY_GRAPH 的值如何,都不会生成目录图。
当此命令放置在类的注释块中时,Doxygen 将为该类生成协作图。无论 COLLABORATION_GRAPH 的值如何,都会生成协作图。
当此命令放置在类的注释块中时,Doxygen 将不会为该类生成协作图。无论 COLLABORATION_GRAPH 的值如何,都不会生成协作图。
当此命令放置在类的注释块中时,Doxygen 将为该类生成符合 option
的继承图。无论 CLASS_GRAPH 的值如何,都会生成符合 option
的继承图。option
的可能值与 CLASS_GRAPH 可以使用的值相同。如果未指定 option
,则假定值为 YES
。
当此命令放置在类的注释块中时,Doxygen 将不会为该类生成继承图。无论 CLASS_GRAPH 的值如何,都不会生成继承图。
当此命令放置在 \defgroup 命令的注释块中时,Doxygen 将为该组生成一个组依赖图。无论 GROUP_GRAPHS 的值如何,都会生成组图。
当此命令放置在 \defgroup 命令的注释块中时,Doxygen 将不会为该组生成组依赖图。无论 GROUP_GRAPHS 的值如何,都不会生成组图。
当此命令放置在枚举的注释块中时,doxygen 将显示该枚举的指定枚举值,无论 SHOW_ENUM_VALUES 的值如何。
当此命令放置在枚举的注释块中时,doxygen 将不会显示该枚举的指定枚举值,无论 SHOW_ENUM_VALUES 的值如何。
使用此命令,可以向成员和类添加自定义限定符标签。这些标签将以与自动生成的标签(如“static”、“inline”和“final”)相同的方式显示在输出中。
例如,要指示某个函数仅用于测试目的,可以添加 \qualifier test
仅限 Objective-C:指示注释块包含名称为 <name> 的类别的文档。参数与 \class 命令相同。
指示注释块包含名称为 <name> 的类的文档。可以选择指定头文件和头名称。如果指定了头文件,则 HTML 文档中将包含指向头文件逐字副本的链接。可以使用 <header-name> 参数覆盖类文档中使用的链接名称,使其不是 <header-file>。如果 include 名称不在默认 include 路径上(如 <X11/X.h>),这将非常有用。使用 <header-name> 参数,还可以通过在名称周围添加引号或尖括号来指定 include 语句的外观。如果仅给出名称,则使用尖括号。请注意,最后两个参数也可以使用 \headerfile 命令指定。
指示注释块包含名称为 <name> 的 C++20 概念的文档。另请参阅 \headerfile 命令以指定用户应包含的头文件以使用该概念。
指示注释块包含类、模块、概念、文件或命名空间的主题的文档。这可以用来对符号进行分类,并记录这些类别。您还可以使用组作为其他组的成员,从而构建组的层次结构。
<name> 参数应为单字标识符。
指示注释块包含目录的文档。“路径片段”参数应包含目录名称以及足够多的路径信息,以便在项目中与其他目录区分开来。STRIP_FROM_PATH 选项决定在输出中显示之前从完整路径中删除哪些部分。
指示注释块包含枚举的文档,枚举的名称为 <名称>。如果枚举是类的成员,并且文档块位于类定义之外,则还应指定类的作用域。如果注释块直接位于枚举声明之前,则可以省略 \enum
注释。
指示注释块包含源代码示例的文档。源文件的名称是 <文件名>。此文件的内容将包含在文档中,紧跟在注释块中包含的文档之后。如果需要,您可以添加选项 {lineno}
来为示例启用行号。所有示例都放在一个列表中。扫描源代码以查找已记录的成员和类。如果找到任何成员和类,则会将其名称与文档进行交叉引用。可以使用 Doxygen 配置文件的 EXAMPLE_PATH 标记指定源文件或目录。
如果 <文件名> 本身对于 EXAMPLE_PATH 标记指定的一组示例文件不是唯一的,则可以包含绝对路径的一部分来消除歧义。
如果示例需要多个源文件,则可以使用 \include 命令。
example_test.cpp
如下所示 此命令结束一个由 \internal 命令开始的文档片段。只有在 INTERNAL_DOCS 设置为 YES
时,\internal 和 \endinternal
之间的文本才可见。
当编程语言本身不支持此概念时(例如 C),可以使用此命令手动指示继承关系。
示例目录中的文件 manual.c
显示了如何使用此命令(另请参阅\memberof 获取完整文件)。
单击这里查看 Doxygen 生成的相应 HTML 文档。
指示注释块包含名为 <名称> 的源文件或头文件的文档。如果仅使用文件名不足以唯一标识文件,则文件名可以包含(部分)路径。如果省略文件名(即,\file
后的行留空),则包含 \file
命令的文档块将属于其所在的文件。
YES
时,它们的文档才会包含在输出中。YES
。 显示此命令所在的(部分)文件名。选项
可以是 name
、extension
、filename
、directory
或 full
,其中
name
不带扩展名的文件名extension
文件的扩展名filename
文件名,即 name
加 extension
directory
给定文件的目录full
给定文件的完整路径和文件名。如果未指定任何选项,则使用 filename
,除非 FULL_PATH_NAMES 设置为 YES
,在这种情况下使用 full
。
指示注释块包含函数(全局函数或作为类的成员)的文档。只有当注释块没有放在函数声明或定义的前面(或后面)时,才需要此命令。
如果你的注释块位于函数声明或定义的前面,则可以(并且为了避免冗余应该)省略此命令。
一个完整的函数声明(包括参数)应在 \fn
命令之后在单行上指定,因为参数在该行末尾结束!
此命令等效于 \var、\typedef 和 \property。
旨在用于类、结构或联合的文档,其中文档位于定义之前。此命令的参数与 \class 的第二个和第三个参数相同。<头文件> 名称是指应用程序应包含的文件,以获取类、结构或联合的定义。<头文件名称> 参数可用于将类文档中使用的链接名称覆盖为 <头文件> 以外的其他名称。如果包含名称不在默认包含路径上(例如 <X11/X.h>),这会很有用。
使用 <头文件名称> 参数,你还可以指定 include 语句的外观,方法是在名称周围添加双引号或尖括号。默认情况下,如果仅给出名称,则使用尖括号。
如果为 <头文件> 或 <头文件名称> 参数提供了一对双引号,则将使用当前文件(其中找到该命令),但带有引号。因此,对于文件 test.h
中包含 \headerfile
命令的注释块,以下三个命令是等效的
\headerfile test.h "test.h" \headerfile test.h "" \headerfile ""
要获得尖括号,你无需指定任何内容,但如果你想明确一点,可以使用以下任何一种方法
\headerfile test.h <test.h> \headerfile test.h <> \headerfile <>
要全局反转默认的 include 表示形式以使用本地包含,可以将 FORCE_LOCAL_INCLUDES 设置为 YES
。
要完全禁用 include 信息,请将 SHOW_HEADERFILE 设置为 NO
。
默认情况下,会显示定义的常量值和变量的初始化器,除非它们超过 30 行。通过将此命令放在定义常量或变量的注释块中,始终会隐藏初始化器。初始化行数的最大值可以通过配置参数 MAX_INITIALIZER_LINES 更改,默认值为 30。
指示注释块包含名为 <名称> 的 IDL 异常的文档。
当编程语言本身不支持此概念时(例如 C),可以使用此命令手动指示继承关系。
示例目录中的文件 manual.c
显示了如何使用此命令(另请参阅\memberof 获取完整文件)。
单击这里查看 Doxygen 生成的相应 HTML 文档。
如果 \ingroup
命令放置在复合实体(如类、文件或命名空间)的注释块中,则它将被添加到由 <组名>
标识的组中。对于成员(如变量、函数、typedef 和枚举),该成员将仅添加到一个组(以避免在成员未在其类、命名空间或文件的上下文中记录,但仅作为组的一部分可见的情况下出现歧义的链接目标)。
表示注释块包含名为 <name> 的接口的文档。参数与 \class 命令的参数相同。
此命令启动一个仅供内部使用的文档片段。该片段自然会在注释块的末尾结束。您也可以使用 \endinternal 命令强制内部节提前结束。
如果 \internal
命令放置在某个节内(例如,请参阅 \section),则该命令之后的所有子节也将被视为内部节。只有同一级别的新节才会结束被认为是内部节的片段。
您可以使用配置文件中的 INTERNAL_DOCS 来显示 (YES
) 或隐藏 (NO
) 内部文档。
如果 \mainpage
命令放置在注释块中,则该块用于自定义索引页(在 HTML 中)或第一章(在 中)。
title 参数是可选的,用于替换 Doxygen 通常生成的默认标题。如果您不想要任何标题,可以将 notitle
指定为 \mainpage
的参数。
这是一个示例
/*! \mainpage My Personal Index Page * * \section intro_sec Introduction * * This is the introduction. * * \section install_sec Installation * * \subsection step1 Step 1: Opening the box * * etc... */
您可以使用以下命令引用主页:\ref index
。
此命令使函数成为类的成员,类似于 \relates 的方式,只是使用此命令时,该函数被表示为类的真实成员。当编程语言本身不支持成员函数的概念时(例如,C),这会很有用。
也可以将此命令与 \public、\protected 或 \private 一起使用。
manual.c
展示了如何使用此命令表示注释块包含名为 <name> 的 C++20 模块的文档。
此命令将注释块转换为成员组的头定义。注释块后面应跟一个包含该组成员的 @{
... @}
块。
有关示例,请参阅 成员组 部分。
此命令可以放置在类的文档中。它可以与成员分组结合使用,以避免 Doxygen 将成员组作为 Public/Protected/Private/... 部分的子组。
这是为方便起见提供的重载成员函数。它与上述函数的区别仅在于它接受的参数。
如果重载成员函数的文档未位于函数声明或定义之前,则应使用可选参数来指定重载函数的正确声明。当然,当 \overload
命令直接位于重载成员函数之前且使用了可选参数时,这也应该是重载函数的正确声明。
注释块内的任何其他文档都将附加到生成的消息之后。
NO
。\overload
命令。表示注释块包含一段不直接与特定类、文件或成员相关的文档。HTML 生成器会创建一个包含该文档的页面。 生成器在“页面文档”章节中启动一个新的节。
MYPAGE1
)或混合大小写字母(例如,MyPage1
),则应将 CASE_SENSE_NAMES 设置为 YES
。但是,仅当您的文件系统区分大小写时,才建议这样做。否则(为了更好的可移植性),您应该在对页面的所有引用中对 <name> 使用全部小写字母(例如,mypage1
)。表示由注释块记录的成员是私有的,即,只能由同一类中的其他成员访问。
请注意,Doxygen 会自动检测面向对象语言中成员的保护级别。此命令仅在语言本身不支持保护级别概念时(例如,C、PHP 4)使用。
要启动一个私有成员节,其方式类似于 C++ 中的“private:”类标记,请使用 \privatesection。
启动一个私有成员节,其方式类似于 C++ 中的“private:”类标记。表示由注释块记录的成员是私有的,即,只能由同一类中的其他成员访问。
表示注释块包含属性的文档(全局属性或作为类的成员)。此命令等同于 \fn、\typedef 和 \var。
表示注释块所记录的成员是受保护的,即,只能由相同或派生类中的其他成员访问。
请注意,Doxygen 会自动检测面向对象语言中成员的保护级别。此命令仅在语言本身不支持保护级别概念时(例如,C、PHP 4)使用。
要开始一个受保护成员的部分,其方式类似于 C++ 中的 "protected:" 类标记,请使用 \protectedsection。
开始一个受保护成员的部分,其方式类似于 C++ 中的 "protected:" 类标记。表示注释块所记录的成员是受保护的,即,只能由相同或派生类中的其他成员访问。
表示注释块包含 Objective-C 中名称为 <名称> 的协议的文档。参数与 \class 命令的参数相同。
表示注释块所记录的成员是公共的,即,可以被任何其他类或函数访问。
请注意,Doxygen 会自动检测面向对象语言中成员的保护级别。此命令仅在语言本身不支持保护级别概念时(例如,C、PHP 4)使用。
要开始一个公共成员的部分,其方式类似于 C++ 中的 "public:" 类标记,请使用 \publicsection。
开始一个公共成员的部分,其方式类似于 C++ 中的 "public:" 类标记。表示注释块所记录的成员是公共的,即,可以被任何其他类或函数访问。
表示注释块所记录的成员是纯虚函数,即,它是抽象的,并且没有与之关联的实现。
此命令仅适用于当语言本身不支持纯虚方法的概念时(例如 C、PHP 4)。
此命令可以用于非成员函数 <名称> 的文档中。它将函数放入类文档的“相关函数”部分。此命令对于记录与某个类紧密耦合的非友元函数很有用。它避免了必须记录文件的需要,但仅适用于函数。
等效于 \relates
此命令可以用于非成员函数 <名称> 的文档中。它将函数放入类文档的“相关函数”部分,并将其保留在正常的文档文件位置。此命令对于记录与某个类紧密耦合的非友元函数很有用。它仅适用于函数。
等效于 \relatesalso
默认情况下,仅当 define 的值和变量的初始化程序少于 30 行时才会显示它们。通过在 define 或变量的注释块中放置此命令,可以无条件地显示初始化程序。可以通过配置参数 MAX_INITIALIZER_LINES 更改最大初始化行数,默认值为 30。
表示注释块所记录的成员是静态的,即,它作用于类,而不是类的实例。
此命令仅适用于当语言本身不支持静态方法的概念时(例如 C)。
表示注释块包含名称为 <名称> 的结构体的文档。参数与 \class 命令的参数相同。
表示注释块包含 typedef 的文档(全局 typedef 或作为类的成员)。此命令等同于 \fn、\property 和 \var。
表示注释块包含名称为 <名称> 的联合体的文档。参数与 \class 命令的参数相同。
表示注释块包含变量或枚举值的文档(全局变量或作为类的成员)。此命令等同于 \fn、\property 和 \typedef。
请注意,对于 PHP,也可以指定变量的类型。语法与 phpDocumentor
类似,但描述必须从下一行开始,即
@var datatype $varname Description
这是一个 VHDL 特有的命令,可以放在进程的文档中,以生成进程中逻辑的流程图。可以选择提供流程图的标题。
可以像 \addtogroup 一样使用,但在解决冲突的分组定义时优先级较低。
开始一个段落,其中可以输入需要注意的消息。段落将缩进。段落的文本没有特殊的内部结构。所有可视化增强命令都可以在段落内使用。多个相邻的 \attention
命令将合并为一个段落。当遇到空行或其他分节命令时,\attention
命令结束。
开始一个段落,其中可以输入一个或多个作者姓名。段落将缩进。段落的文本没有特殊的内部结构。所有可视化增强命令都可以在段落内使用。多个相邻的 \author
命令将合并为一个段落。每个作者描述都将开始新的一行。或者,一个 \author
命令可以提及多个作者。当遇到空行或其他分节命令时,\author
命令结束。
等效于 \author。
开始一个段落,用作简短描述。对于类和文件,简短描述将用于列表和文档页面的开头。对于类和文件成员,简短描述将放置在成员的声明处,并附加到详细描述之前。简短描述可以跨越多行(尽管建议保持简短!)。当遇到空行或其他分节命令时,简短描述结束。如果存在多个 \brief
命令,它们将合并在一起。请参阅 \author 部分以获取示例。
与 \short 同义。
开始一个段落,其中可以报告一个或多个错误。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \bug
命令将合并为一个段落。每个错误描述将从新的一行开始。或者,一个 \bug
命令可以提及多个错误。当遇到空行或其他分节命令时,\bug
命令结束。请参阅 \author 部分以获取示例。
该描述还将向单独的 Bug 列表添加一个项目,并且该描述的两个实例将进行交叉引用。Bug 列表中的每个项目前面都会有一个标头,指示该项目的来源。
可以通过将 GENERATE_BUGLIST 设置为 NO
来禁用 Bug 列表和相应的条目。
开始一个条件节,该条件节以对应的 \endcond 命令结束,该命令通常在另一个注释块中找到。这对命令的主要目的是(有条件地)将文件的部分内容排除在处理之外(在 Doxygen 的旧版本中,这只能使用 C 预处理器命令来实现)。
可以通过将节标签添加到 ENABLED_SECTIONS 配置选项中来包含 \cond
和 \endcond 之间的部分。如果省略节标签,则该部分将无条件地排除在处理之外。节标签可以是节标签、圆括号、&&(与)、||(或)和!(非)组成的逻辑表达式。如果使用表达式,则需要将其包裹在圆括号中,例如 \cond (!LABEL1 && LABEL2)
。
对于注释块中的条件节,应使用 \if ... \endif 块。当使用 \cond
并且条件不满足时,当前的注释块将结束,并且所有内容直到匹配的 \endcond 都将被删除,并在那里开始一个新的命令块。
条件节可以嵌套。在这种情况下,只有当嵌套节及其包含的节都被包含时,才会显示嵌套节。
以下是一个示例,展示了这些命令的实际操作
/** An interface */ class Intf { public: /** A method */ virtual void func() = 0; /// @cond TEST /** A method used for testing */ virtual void test() = 0; /// @endcond }; /// @cond DEV /* * The implementation of the interface */ class Implementation : public Intf { public: void func(); /// @cond TEST void test(); /// @endcond /// @cond /** This method is obsolete and does * not show up in the documentation. */ void obsolete(); /// @endcond }; /// @endcond
输出结果将根据 ENABLED_SECTIONS 是否包含 TEST
或 DEV
而有所不同
开始一个段落,其中可以描述实体的版权。该段落将缩进。段落的文本没有特殊的内部结构。请参阅 \author 部分以获取示例。
开始一个段落,其中可以输入一个或多个日期。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \date
命令将合并为一个段落。每个日期描述将从新的一行开始。或者,一个 \date
命令可以提及多个日期。当遇到空行或其他分节命令时,\date
命令结束。请参阅 \author 部分以获取示例。
根据给定的 <format> 和 <date_time> 显示日期和时间。其中 <format> 是一个字符串,其中以下标记具有特殊含义
代码 | 描述 |
---|---|
%y | 不带世纪的年份,以零填充的十进制数字表示。 |
%Y | 带世纪的年份,以十进制数字表示。 |
%m | 月份,以零填充的十进制数字表示。 |
%-m | 月份,以十进制数字表示。 |
%b | 月份,以本地化的缩写名称表示。 |
%B | 月份,以本地化的完整名称表示。 |
%d | 月份中的日期,以零填充的十进制数字表示。 |
%-d | 月份中的日期,以十进制数字表示。 |
%u | 星期几,以十进制数字 (1-7) 表示,其中星期一为 1。 |
%w | 星期几,以十进制数字 (0-6) 表示,其中星期日为 0。 |
%a | 星期几,以本地化的缩写名称表示。 |
%A | 星期几,以本地化的完整名称表示。 |
%H | 小时(24 小时制),以零填充的十进制数字表示。 |
%-H | 小时(24 小时制),以十进制数字表示。 |
%I | 小时(12 小时制),以零填充的十进制数字表示。 |
%-I | 小时(12 小时制),以十进制数字表示。 |
%M | 分钟,以零填充的十进制数字表示。 |
%-M | 分钟,以十进制数字表示。 |
%S | 秒,以零填充的十进制数字表示。 |
%-S | 秒,以十进制数字表示。 |
%p | 本地化的 AM 或 PM 等效项。 |
%% | 一个 % 字符。 |
请注意,<format> 必须用双引号括起来。
如果指定了 <date_time>,则它必须具有以下表示形式
date
,其中 date
是time
,其中 time
是如果未指定 <date_time>,则使用当前日期和时间。
这是一个示例
如果 OUTPUT_LANGUAGE=english
,则结果为
如果 OUTPUT_LANGUAGE=dutch
,则结果为
开始一个段落,指示此文档块属于已弃用的实体。可用于描述替代方案、预期寿命等。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \deprecated
命令将合并为一个段落。每个弃用描述将从新的一行开始。当遇到空行或其他分节命令时,\deprecated
命令结束。
该描述还将向单独的已弃用列表添加一个项目,并且该描述的两个实例将进行交叉引用。已弃用列表中的每个项目前面都会有一个标头,指示该项目的来源。
可以通过将 GENERATE_DEPRECATEDLIST 设置为 NO
来禁用已弃用列表和相应的条目。
正如 \brief 开始简短描述一样,\details
开始详细描述。您也可以开始一个新段落(空行),这样就不需要 \details
命令。
所有文本,包括命令,都将被忽略,直到行尾。该命令最常与 ALIASES 结合使用,以忽略例如其他处理工具中存在的不支持的命令。
所有文本,不包括命令,都将按字面意思显示为文档警告,直到行尾。文本(包括命令)将从输出中删除。该命令最常与 ALIASES 结合使用,以显示特定的警告。
\raisewarning My specific warning \warnNoDoc \warnNoDoc{My specific warning}结合使用
ALIASES = warnNoDoc="\raisewarning Missing documentation" ALIASES += warnNoDoc{1}="\raisewarning Incomplete documentation: \1"将导致
ex_1.md:1: warning: My specific warning ex_1.md:3: warning: Missing documentation ex_1.md:5: warning: Incomplete documentation: My specific warning
如果之前的条件节未启用,则开始一个条件节。之前的节应该已使用 \if、\ifnot 或 \elseif 命令启动。
如果之前的节未启用,则开始一个条件文档节。默认情况下,条件节处于禁用状态。要启用它,您必须将节标签放在配置文件中 ENABLED_SECTIONS 标记之后。节标签可以是节名称、圆括号、&&(与)、||(或)和!(非)组成的逻辑表达式。条件块可以嵌套。只有当所有封闭节也启用时,才会启用嵌套节。
结束由 \cond 启动的条件节。
结束由 \if 或 \ifnot 启动的条件节。对于每个 \if 或 \ifnot,必须跟随一个且仅一个匹配的 \endif。
为名为 <exception-object> 的异常对象开始一个异常描述。后跟异常的描述。不会检查异常对象是否存在。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \exception
命令将合并为一个段落。每个异常描述都将在新行开始。当遇到空行或其他分节命令时,\exception
描述结束。有关示例,请参见 \fn 部分。
开始一个有条件的文档部分。该部分以匹配的 \endif 命令结束。默认情况下,条件部分处于禁用状态。要启用它,您必须将 section-label 放在配置文件中的 ENABLED_SECTIONS 标签之后。
节标签可以是节名称、圆括号、&& (AND)、|| (OR) 和 ! (NOT) 构建的逻辑表达式。如果使用表达式,则需要将其括在圆括号中,例如 \if (!LABEL1 && LABEL2)
。
条件块可以嵌套。只有当所有封闭部分也都启用时,才会启用嵌套部分。
\if
和对应的 \endif 必须在同一个注释块中。当一个条件块需要跨越多个注释块时,必须使用 \cond ... \endcond。
/*! Unconditionally shown documentation. * \if Cond1 * Only included if Cond1 is set. * \endif * \if Cond2 * Only included if Cond2 is set. * \if Cond3 * Only included if Cond2 and Cond3 are set. * \endif * More text. * \endif * Unconditional text. */
您也可以在别名中使用条件命令。例如,要用两种语言记录一个类,您可以使用
/*! \english * This is English. * \endenglish * \dutch * Dit is Nederlands. * \enddutch */ class Example { };
其中以下别名在配置文件中定义
ALIASES = "english=\if english" \ "endenglish=\endif" \ "dutch=\if dutch" \ "enddutch=\endif"
并且 ENABLED_SECTIONS 可以用于启用 english
或 dutch
。
开始一个有条件的文档部分。该部分以匹配的 \endif 命令结束。默认情况下,此条件部分处于启用状态。要禁用它,您必须将 section-label 放在配置文件中的 ENABLED_SECTIONS 标签之后。节标签可以是节名称、圆括号、&& (AND)、|| (OR) 和 ! (NOT) 构建的逻辑表达式。
开始一个段落,可以在其中输入需要重要的消息。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \important
命令将合并为一个段落。当遇到空行或其他分节命令时,\important
命令结束。
开始一个段落,可以在其中描述实体的不变量。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \invariant
命令将合并为一个段落。每个不变量描述都将在新行开始。或者,一个 \invariant
命令可以提及多个不变量。当遇到空行或其他分节命令时,\invariant
命令结束。
开始一个段落,可以在其中输入注释。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \note
命令将合并为一个段落。每个注释描述都将在新行开始。或者,一个 \note
命令可以提及多个注释。当遇到空行或其他分节命令时,\note
命令结束。有关示例,请参见 \par 部分。
如果给出了段落标题,则此命令将以用户定义的标题开始一个段落。标题延伸到该行末尾。该命令之后的段落将缩进。
如果没有给出段落标题,则此命令将开始一个新段落。这也可以在其他段落命令(如 \param 或 \warning)中使用,而不会结束该命令。
段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。当遇到空行或其他分节命令时,\par
命令结束。
为名为 <parameter-name> 的函数参数开始一个参数描述,后跟参数的描述。将检查参数是否存在,如果缺少此(或任何其他)参数的文档,或者该参数不存在于函数声明或定义中,则会发出警告。
\param
命令有一个可选属性 <dir>,指定参数的方向。可能的值为 “[in]”、“[out]” 和 “[in,out]”;请注意此描述中的 [方括号]。对于双向值,可以按任何顺序指定方向 “in” 和 “out”,并且可以将它们写在一起,或者用逗号 (,
) 或空格分隔。这意味着例如值 “[outin]” 或 “[in out]” 也是有效的。请注意,也可以在命令和 <dir> 之间放置空格。当一个参数既是输入又是输出时,[in,out] 用作属性。以下是函数 memcpy
的示例:
参数描述是一个没有特殊内部结构的段落。所有视觉增强命令都可以在段落内使用。
多个相邻的 \param
命令将合并为一个段落。每个参数描述都将在新行开始。当遇到空行或其他分节命令时,\param
描述结束。有关示例,请参见 \fn 部分。
请注意,您还可以使用逗号分隔列表,用单个 \param
命令记录多个参数。这是一个示例
请注意,对于 PHP,还可以指定参数允许的类型(或者如果用管道符号分隔,则指定多个类型),因为这不是定义的一部分。语法与 phpDocumentor
的语法相同,即
@param datatype1|datatype2 $paramname description
对于期望单个段落作为参数的命令(例如 \par、\param 和 \warning),\parblock 命令允许开始一个跨多个段落的描述,该描述然后以 \endparblock 结束。
示例
/** Example of a param command with a description consisting of two paragraphs * \param p * \parblock * First paragraph of the param description. * * Second paragraph of the param description. * \endparblock * Rest of the comment block continues. */
请注意,\parblock
命令也可能直接出现在 \param 的第一个参数之后。
这结束了以 \parblock 开头的一段段落。
为类或函数模板参数开始一个模板参数,名称为 <模板参数名称>,后跟模板参数的描述。
否则,与 \param 类似。
开始一个段落,可以在其中描述实体的后置条件。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \post
命令将合并为一个段落。每个后置条件都将在新行开始。或者,一个 \post
命令可以提及多个后置条件。当遇到空行或其他分节命令时,\post
命令结束。
开始一个段落,可以在其中描述实体的前置条件。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \pre
命令将合并为一个段落。每个前置条件都将在新行开始。或者,一个 \pre
命令可以提及多个前置条件。当遇到空行或其他分节命令时,\pre
命令结束。
开始一个段落,可以在其中输入一个或多个备注。该段落将缩进。段落的文本没有特殊的内部结构。所有视觉增强命令都可以在段落内使用。多个相邻的 \remark
命令将合并为一个段落。每个备注都将在新行开始。或者,一个 \remark
命令可以提及多个备注。当遇到空行或其他分节命令时,\remark
命令结束。
等同于 \remark。
等同于 \return。
开始描述函数的返回值。段落文本没有特殊的内部结构。所有视觉增强命令都可以在段落内部使用。多个相邻的 \return
命令将合并成一个段落。当遇到空行或其他分节命令时,\return
描述结束。参见 \fn 部分的示例。
等同于 \return。
开始描述函数的返回值,名称为 <返回值>,后跟返回值的描述。构成描述的段落文本没有特殊的内部结构。所有视觉增强命令都可以在段落内部使用。多个相邻的 \retval
命令将合并成一个段落。每个返回值描述将从新的一行开始。当遇到空行或其他分节命令时,\retval
描述结束。
开始一个段落,其中可以指定一个或多个对类、函数、方法、变量、文件或 URL 的交叉引用。由 ::
或 #
连接的两个名称被理解为引用一个类及其成员之一。可以通过在方法名称后包含带括号的参数类型列表来选择多个重载方法或构造函数之一。
与 \see 同义。
等同于 \sa。为与 Javadoc 兼容而引入。
等同于 \brief。
此命令可用于指定实体可用的时间(版本或时间)。 \since
之后的段落没有任何特殊的内部结构。所有视觉增强命令都可以在段落内部使用。当遇到空行或其他分节命令时,\since
描述结束。
开始一个段落,其中可以描述一个或多个测试用例。该段落将缩进。段落文本没有特殊的内部结构。所有视觉增强命令都可以在段落内部使用。多个相邻的 \test
命令将合并成一个段落。每个测试用例描述将从新的一行开始。或者,一个 \test
命令可以提及多个测试用例。当遇到空行或其他分节命令时,\test
命令结束。
该描述还将向单独的测试列表添加一个条目,并且该描述的两个实例将交叉引用。测试列表中的每个条目都将以指示条目来源的标题开头。
可以通过将 GENERATE_TESTLIST 设置为 NO
来禁用测试列表和相应的条目。
与 \exception 同义。
等同于 \throw。
开始一个段落,其中描述一个或多个待办事项。该段落将缩进。段落文本没有特殊的内部结构。所有视觉增强命令都可以在段落内部使用。多个相邻的 \todo
命令将合并成一个段落。每个待办事项描述将从新的一行开始。或者,一个 \todo
命令可以提及多个待办事项描述。当遇到空行或其他分节命令时,\todo
命令结束。
该描述还将向单独的待办事项列表添加一个条目,并且该描述的两个实例将交叉引用。待办事项列表中的每个条目都将以指示条目来源的标题开头。
可以通过将 GENERATE_TODOLIST 设置为 NO
来禁用待办事项列表和相应的条目。
开始一个段落,其中可以输入一个或多个版本字符串。该段落将缩进。段落文本没有特殊的内部结构。所有视觉增强命令都可以在段落内部使用。多个相邻的 \version
命令将合并成一个段落。每个版本描述将从新的一行开始。或者,一个 \version
命令可以提及多个版本字符串。当遇到空行或其他分节命令时,\version 命令结束。参见 \author 部分的示例。
开始一个段落,其中可以输入一个或多个警告消息。该段落将缩进。段落文本没有特殊的内部结构。所有视觉增强命令都可以在段落内部使用。多个相邻的 \warning
命令将合并成一个段落。每个警告描述将从新的一行开始。或者,一个 \warning
命令可以提及多个警告。当遇到空行或其他分节命令时,\warning
命令结束。参见 \author 部分的示例。
此命令是诸如 \todo 和 \bug 之类的命令的泛化。它可以用于创建用户定义的文本部分,这些文本部分在出现位置和将生成的相关页面之间自动交叉引用。在相关页面上,将收集所有相同类型的段落。
第一个参数 <键> 是一个唯一标识段落类型的标识符。第二个参数是一个带引号的字符串,表示段落的标题,传递的文本作为第四个参数放置在该标题下。第三个参数(列表标题)用作包含所有具有相同键的项的相关页面的标题。第二个和第三个字符串参数不能包含换行符。 "todo"
、"test"
、"bug"
和 "deprecated"
这些键是预定义的。
要了解如何使用 \xrefitem
命令及其效果,请考虑待办事项列表,该列表(对于英文输出)可以看作是以下命令的别名
\xrefitem todo "Todo" "Todo List"
由于为每个段落重复该命令的前三个参数非常繁琐且容易出错,因此该命令旨在与配置文件中的 ALIASES 选项结合使用。例如,要定义一个新命令 \reminder
,应在配置文件中添加以下行
ALIASES += "reminder=\xrefitem reminders \"Reminder\" \"Reminders\""
请注意,\xrefitem
命令的第二个和第三个参数使用了转义引号。
如果参数“(标题)”为空字符串,则不会生成标题。当与 \page 命令结合使用时,这可能很有用,例如
/** @page my_errors My Errors * @brief Errors page * * Errors page contents. */ /** \error ERROR 101: in case a file can not be opened. Check about file system read/write access. */ #define MY_ERR_CANNOT_OPEN_FILE 101 /** \error ERROR 102: in case a file can not be closed. Check about file system read/write access. */ #define MY_ERR_CANNOT_CLOSE_FILE 102
其中 \error
定义为
ALIASES += "error=\xrefitem my_errors \"\" \"\""
此命令将(文本)添加到 、DocBook 和 RTF 索引中。
此命令将一个不可见的、命名的锚点放置在文档中,您可以使用 \ref 命令引用该锚点。
在文本和参考书目列表中添加参考书目。 <标签> 必须是在 CITE_BIB_FILES 中列出的 .bib 文件之一中找到的有效 BibTeX 标签。对于 输出,文本中引用的格式可以使用 LATEX_BIB_STYLE 进行配置。对于其他输出格式,将使用固定的表示形式。请注意,使用此命令需要搜索路径中存在 bibtex
工具。
此命令结束由 \link 命令启动的链接。
Doxygen 自动生成的链接始终以它们指向的对象的名称作为链接文本。
\link
命令可用于创建指向对象(文件、类或成员)的链接,并使用用户指定的链接文本。链接命令应以 \endlink 命令结束。 \link
和 \endlink 命令之间的所有文本都用作指向作为 \link
的第一个参数指定的 <链接对象> 的链接文本。
对于 HTML 文档,引用命令将生成指向该段落的链接。对于段落或子段落,该段落的标题将用作链接的文本。对于锚点,将使用引号之间的可选文本,如果没有指定文本,则使用 <名称>。
如果 <名称> 有空格(例如,如果它引用包含空格的文件名),则需要在 <名称> 周围添加双引号,例如“my file.md”。
对于 文档,引用命令将相同,除非 PDF_HYPERLINKS 选项设置为 NO
,在这种情况下,它将为段落生成段落标题,或者如果 <名称> 引用锚点,则生成文本,后跟页码。
\ref
命令的示例,请参阅 \page 部分。与 \ref 命令一样,此命令创建对命名段落的引用,但此引用将显示在由 \secreflist 启动并以 \endsecreflist 结束的列表中。可以在 页面顶部 看到此类列表的示例。
启动一个条目索引列表,使用 \refitem 创建,每个条目链接到一个指定的节。
结束由 \secreflist 启动的索引列表。
此命令可用于创建页面的层级结构。可以使用 \defgroup 和 \ingroup 命令创建相同的结构,但对于页面,\subpage
命令通常更方便。主页面(参见 \mainpage)通常是层级结构的根。
此命令的行为类似于 \ref,因为它创建对标记为 <名称> 的页面的引用,并带有在第二个参数中指定的可选链接文本。
它与 \ref 命令的不同之处在于,它仅适用于页面,并在页面之间创建父子关系,其中子页面(或子页面)由标签 <名称> 标识。
如果要添加结构而不创建多个页面,请参阅 \section 和 \subsection 命令。
这是一个示例
/*! \mainpage A simple manual Some general info. This manual is divided in the following sections: - \subpage intro - \subpage advanced "Advanced usage" */ //----------------------------------------------------------- /*! \page intro Introduction This page introduces the user to the topic. Now you can proceed to the \ref advanced "advanced section". */ //----------------------------------------------------------- /*! \page advanced Advanced Usage This page is for advanced users. Make sure you have first read \ref intro "the introduction". */
在页面顶部创建一个目录,列出页面中的所有节和小节。option
可以是 HTML
、LaTeX
、XML
或 DocBook
。当指定 level
时,表示显示的最大嵌套级别。level
的值应在 1..6 范围内,超出此范围的值将被视为 6。如果未指定 level
,则 level
设置为 6(显示所有)。如果未指定 option
,则 \tableofcontents
的行为就像仅指定了 option
HTML
和 XML
一样。如果一个页面中有多个 \tableofcontents
命令,则 option
将添加到已指定的 option
中,但只有 option
的最后一个 level
有效。
创建一个名为 <节名称> 的节。节的标题应指定为 \section
命令的第二个参数。
\section
命令的示例,请参阅 \page。 创建一个名为 <小节名称> 的小节。小节的标题应指定为 \subsection
命令的第二个参数。
\subsection
命令的示例,请参阅 \page。 创建一个名为 <子小节名称> 的子小节。子小节的标题应指定为 \subsubsection
命令的第二个参数。
创建一个名为 <段落名称> 的命名段落。段落的标题应指定为 \paragraph
命令的第二个参数。
创建一个名为 <子段落名称> 的命名子段落。子段落的标题应指定为 \subparagraph
命令的第二个参数。
创建一个名为 <子子段落名称> 的命名子子段落。子子段落的标题应指定为 \subsubparagraph
命令的第二个参数。
此命令可用于解析源文件,而无需像 \include 命令那样将其逐字包含在文档中。如果要将源文件分成更小的片段并在片段之间添加文档,这将很有用。可以使用 Doxygen 的配置文件中的 EXAMPLE_PATH 标签指定源文件或目录。
您可以添加选项 lineno
以便为包含的代码启用行号(如果需要)。
您可以添加选项 strip
,该选项将始终隐藏包含代码中的任何特殊注释,从而覆盖 STRIP_CODE_COMMENTS 设置,或者添加选项 nostrip
以始终显示特殊注释。
在解析包含 \dontinclude
命令的注释块期间,代码片段中的类和成员声明和定义会被“记住”。
对于源文件的逐行描述,可以使用 \line、\skip、\skipline 和 \until 命令显示示例的一行或多行。内部指针用于这些命令。\dontinclude
命令将指针设置为示例的第一行。
include_test.cpp
如下所示此命令可用于将源文件作为代码块包含在内。该命令将包含文件的名称作为参数。可以使用 Doxygen 的配置文件中的 EXAMPLE_PATH 标签指定源文件或目录。
如果 <文件名> 本身对于 EXAMPLE_PATH 标记指定的一组示例文件不是唯一的,则可以包含绝对路径的一部分来消除歧义。
使用 \include
命令等效于将文件插入到文档块中,并用 \code 和 \endcode 命令将其包围。
\include
命令的主要目的是避免在由多个源文件和头文件组成的示例块中重复代码。
对于源文件的逐行描述,请结合使用 \line、\skip、\skipline 和 \until 命令使用 \dontinclude 命令。
或者,可以使用 \snippet 命令仅包含源文件的片段。为此,必须标记该片段。
option
可以是 lineno
或 doc
,并且可以另外指定 local
。
option
lineno
可用于为包含的代码启用行号(如果需要)。option
doc
可用于将文件视为文档而不是代码。option
local
可用于使 Doxygen 将代码解释为好像它位于 include 命令出现的类或命名空间中,而不是全局命名空间中。option
strip
可用于始终隐藏包含代码中的任何特殊注释,从而覆盖 STRIP_CODE_COMMENTS 设置,并且选项 nostrip
可用于始终显示特殊注释。这些选项与 option
doc
结合使用时无效。使用选项 doc
时,还可以指定选项 raise
,以将引用文件中找到的所有节提升一定数量。例如
\include{doc,raise=1} file.dox
会将 file.dox
中找到的任何 1 级 \section
视为 2 级 \subsection
,并将任何 2 级 \subsection
视为 3 级 \subsubsection
,依此类推。类似地,对于 Markdown,#
节将被视为 ##
节。
此外,还有一个选项 prefix
,可用于为包含的每个节的标签添加前缀,以使其保持唯一。例如
\include{doc,prefix=fn_} file.dox
会将例如在 file.dox
中找到的 \section s1
视为好像指定为 \section fn_s1
。
此命令已过时,仍受支持以实现向后兼容,其工作方式与 \include{lineno} 相同
此命令已过时,仍受支持以实现向后兼容,其工作方式与 \include{doc} 相同
option
与使用选项 doc
时 \include
中可以使用的 option
相同。
此命令在最后使用 \include 或 \dontinclude 包含的示例中逐行搜索,直到找到非空白行。如果该行包含指定的模式,则将其写入输出。
用于跟踪示例中当前行的内部指针,设置为找到的非空白行之后的行的开头(如果找不到这样的行,则设置为示例的末尾)。
有关示例,请参阅 \dontinclude 部分。
此命令逐行搜索上次使用 \include 或 \dontinclude 包含的示例,直到找到包含指定模式的行。
用于跟踪示例中当前行的内部指针会设置为包含指定模式的行的开头(如果未找到模式,则设置为示例的末尾)。
有关示例,请参阅 \dontinclude 部分。
此命令逐行搜索上次使用 \include 或 \dontinclude 包含的示例,直到找到包含指定模式的行。然后,它将该行写入输出。
用于跟踪示例中当前行的内部指针会设置为写入行的下一行的开头(如果未找到模式,则设置为示例的末尾)。
\skipline pattern等效于
\skip pattern \line pattern
有关示例,请参阅 \dontinclude 部分。
\include 命令可用于包含完整的文件作为源代码,而此命令可用于仅引用源文件的片段。如果将 this
用作 <文件名>,则将当前文件作为提取片段的文件。
例如,在文档中放入以下命令,会引用位于子目录中的文件 example.cpp
中的片段,该子目录应由 EXAMPLE_PATH 指向。
\snippet snippets/example.cpp Adding a resource
文件名后面的文本是片段的唯一标识符。它用于分隔相关片段文件中的引用代码,如下面的示例所示,该示例对应于上面的 \snippet
命令
请注意,包含代码块标记的行将不会被包含,因此输出将是
另请注意,[代码块 ID] 标记在源文件中应正好出现两次。
选项
可以是 lineno
、trimleft
或 doc
,还可以指定 local
。
option
lineno
可用于为包含的代码启用行号(如果需要)。选项
trimleft
可用于删除所有行前面的公共空格(同时考虑 TAB_SIZE 标记的设置)。option
doc
可用于将文件视为文档而不是代码。option
local
可用于使 Doxygen 将代码解释为好像它位于 include 命令出现的类或命名空间中,而不是全局命名空间中。option
strip
可用于始终隐藏包含代码中的任何特殊注释,从而覆盖 STRIP_CODE_COMMENTS 设置,并且选项 nostrip
可用于始终显示特殊注释。这些选项与 option
doc
结合使用时无效。使用选项 doc
时,还可以指定选项 raise
,以将引用文件中找到的所有节提升一定数量。例如
\snippet{doc,raise=1} file.dox XXX
会将片段中找到的任何 1 级 \section
视为 2 级 \subsection
,并将任何 2 级 \subsection
视为 3 级 \subsubsection
,依此类推。类似地,对于 Markdown,#
节将被视为 ##
节。
此外,还有一个选项 prefix
,可用于为包含的每个节的标签添加前缀,以使其保持唯一。例如
\include{doc,prefix=fn_} file.dox
会将例如在 file.dox
中找到的 \section s1
视为好像指定为 \section fn_s1
。
有关包含源文件片段的替代方法(不需要标记),请参见 \dontinclude 节。
此命令已过时,但仍出于向后兼容性原因而受支持,它的工作方式与 \snippet{lineno} 相同
此命令已过时,但仍出于向后兼容性原因而受支持,它的工作方式与 \snippet{doc} 相同
选项
与使用 \snippet
时使用 doc
选项时可用的 选项
相同。
此命令将上次使用 \include 或 \dontinclude 包含的示例中的所有行写入输出,直到找到包含指定模式的行。包含模式的行也将被写入。
用于跟踪示例中当前行的内部指针会设置为最后写入的行后面的行的开头(如果未找到模式,则设置为示例的末尾)。
有关示例,请参阅 \dontinclude 部分。
此命令将文件 <文件名> 的内容逐字包含在文档中。该命令等效于将文件的内容粘贴到文档中,并在其周围放置 \verbatim 和 \endverbatim 命令。
可以使用 Doxygen 配置文件的 EXAMPLE_PATH 标记来指定 Doxygen 应查找的文件或目录。
此命令按原样将文件 <文件名> 的内容包含在 HTML 文档中,并在生成的 XML 输出中标记为 <htmlonly>
。该命令等效于将文件的内容粘贴到文档中,并在其周围放置 \htmlonly 和 \endhtmlonly 命令。
通常,由 \htmlinclude 指示的文件内容按原样插入。如果要插入具有块作用域的 HTML 片段(如应出现在 <p>..</p> 之外的表格或列表),这可能会导致 HTML 无效。可以使用 \htmlinclude[block]
使 Doxygen 结束当前段落并在包含文件后重新开始。
可以使用 Doxygen 配置文件的 EXAMPLE_PATH 标记来指定 Doxygen 应查找的文件或目录。
此命令按原样将文件 <文件名> 的内容包含在 文档中,并在生成的 XML 输出中标记为 <latexonly>
。该命令等效于将文件的内容粘贴到文档中,并在其周围放置 \latexonly 和 \endlatexonly 命令。
可以使用 Doxygen 配置文件的 EXAMPLE_PATH 标记来指定 Doxygen 应查找的文件或目录。
此命令按原样将文件 <文件名> 的内容包含在 RTF 文档中,并在生成的 XML 输出中标记为 <rtfonly>
。该命令等效于将文件的内容粘贴到文档中,并在其周围放置 \rtfonly 和 \endrtfonly 命令。
可以使用 Doxygen 配置文件的 EXAMPLE_PATH 标记来指定 Doxygen 应查找的文件或目录。
此命令按原样将文件 <文件名> 的内容包含在 MAN 文档中,并在生成的 XML 输出中标记为 <manonly>
。该命令等效于将文件的内容粘贴到文档中,并在其周围放置 \manonly 和 \endmanonly 命令。
可以使用 Doxygen 配置文件的 EXAMPLE_PATH 标记来指定 Doxygen 应查找的文件或目录。
此命令按原样将文件 <文件名> 的内容包含在 DocBook 文档中,并在生成的 XML 输出中标记为 <docbookonly>
。该命令等效于将文件的内容粘贴到文档中,并在其周围放置 \docbookonly 和 \enddocbookonly 命令。
可以使用 Doxygen 配置文件的 EXAMPLE_PATH 标记来指定 Doxygen 应查找的文件或目录。
此命令按原样将文件 <文件名> 的内容包含在 XML 文档中。该命令等效于将文件的内容粘贴到文档中,并在其周围放置 \xmlonly 和 \endxmlonly 命令。
可以使用 Doxygen 配置文件的 EXAMPLE_PATH 标记来指定 Doxygen 应查找的文件或目录。
以斜体显示参数 <单词>。使用此命令来强调单词。使用此命令在正文中引用成员参数。
... the \a x and \a y coordinates are used to ...这将产生以下文本
等效于 \e 和 \em。要强调多个单词,请使用 <em>多个单词</em>。
此命令有一个参数,该参数持续到第一个空行或遇到另一个 \arg
为止。该命令可用于生成一个简单的非嵌套参数列表。每个参数应以 \arg
命令开头。
\arg \c AlignLeft left alignment. \arg \c AlignCenter center alignment. \arg \c AlignRight right alignment No other types of alignment are supported.将产生以下文本
AlignLeft
左对齐。AlignCenter
居中对齐。AlignRight
右对齐等效于 \li
使用粗体字体显示参数 <单词>。等效于 <b>单词</b>。要以粗体显示多个单词,请使用 <b>多个单词</b>。
使用打字机字体显示参数 <单词>。使用此命令引用代码中的单词。等效于 <tt>单词</tt>。
... This function returns \c void and not \c int ...将产生以下文本
void
而不是 int
...等效于 \p。要以打字机字体显示多个单词,请使用 <tt>多个单词</tt>。
启动代码块。代码块与普通文本的处理方式不同。它被解释为源代码。类和成员的名称以及其他文档化实体会自动替换为指向文档的链接。
默认情况下,语法高亮所使用的语言是基于 \code
代码块所在的位置推断的。例如,如果代码块位于 Python 文件中,则语法高亮将按照 Python 语法进行。
如果从上下文中无法明确判断是哪种语言(例如,注释位于 .txt
或 .markdown
文件中),则可以通过在代码块后的大括号内添加 Doxygen 通常与该语言关联的文件扩展名来显式指定语言。下面是一个示例:
\code{.py} class Python: pass \endcode \code{.cpp} class Cpp {}; \endcode
如果代码块的内容是 Doxygen 无法解析的语言,Doxygen 将按原样显示输出。您可以使用 .unparsed 来明确说明这一点,或者使用 Doxygen 不支持的其他扩展名,例如:
\code{.unparsed} Show this as-is please \endcode \code{.sh} echo "This is a shell script" \endcode
从 <链接对象> 指定的对象复制文档块,并将其粘贴到命令所在的位置。此命令可用于避免必须重复文档块的情况,或者可用于扩展继承成员的文档。
链接对象可以指向成员(类、文件或组的成员)、类、命名空间、组、页面或文件(按此顺序检查)。请注意,如果指向的对象是成员(函数、变量、typedef 等),则包含它的复合对象(类、文件或组)也应进行文档化,复制才能工作。
要复制类的成员的文档,例如,可以将以下内容放入文档中:
/*! @copydoc MyClass::myfunction() * More documentation. */
如果成员被重载,则应显式指定参数类型(不带空格!),如下所示:
//! @copydoc MyClass::myfunction(type1,type2)
只有在查找文档块的上下文中需要时,才需要限定名称。
\copydoc
命令可以递归使用,但 \copydoc
关系中的循环将被打破并标记为错误。
请注意,\copydoc foo()
大致等同于执行以下操作:
\brief \copybrief foo() \details \copydetails foo()
请参阅 \copybrief 和 \copydetails,了解如何仅复制注释块的简要或详细部分。
其工作方式与 \copydoc 类似,但仅复制简要描述,而不复制详细文档。
其工作方式与 \copydoc 类似,但仅复制详细文档,而不复制简要描述。
启动一个文本块,该文本块仅会逐字包含在生成的 DocBook 文档中,并在生成的 XML 输出中标记为 <docbookonly>
。该文本块以 \enddocbookonly 命令结束。
启动一个文本片段,其中应包含有效的 dot 图描述。文本片段以 \enddot 结束。Doxygen 会将文本传递给 dot,并将生成的图像(和图像地图)包含到输出中。
第一个参数是可选的,可用于指定显示在图像下方的标题。即使此参数不包含任何空格,也必须用引号括起来。在显示标题之前,引号将被删除。
第二个参数也是可选的,可用于指定图像的宽度或高度。有关可能性的描述,请参阅 尺寸指示 段落和 \image 命令。
可以使用 URL 属性使图形的节点可点击。通过在 URL 值中使用 \ref 命令,可以方便地链接到 Doxygen 中的项目。下面是一个示例:
YES
NO
。此命令将生成给定名称的表情符号字符。
支持的名称也是 GitHub 支持的名称,并在此处列出:https://gist.github.com/rxaviers/7360908
您可以使用带有或不带冒号的名称,即 \emoji smile
与编写 \emoji :smile:
相同。当不支持表情符号时,将在文本中用冒号包围名称,即 \emoji unsupported
将在输出中生成 :unsupported:
。Doxygen 还会给出警告消息。
有关详细信息,请参阅 表情符号支持页面。
启动一个文本片段,其中应包含有效的消息序列图描述。有关示例,请参阅 https://www.mcternan.me.uk/mscgen/。文本片段以 \endmsc 结束。
第一个参数是可选的,可用于指定显示在图像下方的标题。即使此参数不包含任何空格,也必须用引号括起来。在显示标题之前,引号将被删除。
第二个参数也是可选的,可用于指定图像的宽度或高度。有关可能性的描述,请参阅 尺寸指示 段落和 \image 命令。
msc {...}
块内的部分(这与 \mscfile 不同)。NO
。下面是使用 \msc
命令的示例。
启动一个文本片段,其中应包含有效的 PlantUML 图描述。有关示例,请参阅 https://plantuml.com/。文本片段以 \enduml 结束。
jar
文件,有关详细信息,请参阅 PlantUML 文档。这对于 <engine>
s latex
和 math
也有效。PlantUML 文件的位置应使用 PLANTUML_JAR_PATH 指定。其他 jar 文件也应位于此目录中。<engine>
ditaa
,因为 PlantUML 仅支持 png
格式,而 Doxygen 临时需要 eps
输出。并非所有图表都可以使用 PlantUML @startuml
命令创建,而是需要另一个 PlantUML @start...
命令。它看起来像 @start<engine>
,其中当前支持以下 <engine>
:uml
、bpm
、wire
、dot
、ditaa
、salt
、math
、latex
、gantt
、mindmap
、wbs
、yaml
、creole
、json
、flow
、board
、git
、hcl
、regex
、ebnf
、files
、chen
和 chronology
。默认情况下,<engine>
为 uml
。可以将 <engine>
指定为选项。也可以通过选项指定用于写入生成的图像的文件,有关详细信息,请参阅第一个(可选)参数的描述。当然,只能指定一个 <engine>
,并且文件名也只能指定一次。
第一个参数是可选的,并且是为了与在运行 Doxygen 之前将 PlantUML 作为预处理步骤运行的兼容性,您还可以在 \startuml
之后和花括号内作为选项添加图像文件的名称,即:
@startuml{myimage.png} "Image Caption" width=5cm Alice -> Bob : Hello @enduml
指定图像名称后,Doxygen 将生成具有该名称的图像。如果未指定名称,Doxygen 将自动选择名称。
第二个参数是可选的,可用于指定显示在图像下方的标题。即使此参数不包含任何空格,也必须用引号括起来。在显示标题之前,引号将被删除。
第三个参数也是可选的,可用于指定图像的宽度或高度。有关可能性的描述,请参阅 尺寸指示 段落和 \image 命令。
@startjson
),这是故意的,但是用户可以通过添加到 Doxygen 设置文件中来实现支持:ALIASES += startjson=@startuml{json} ALIASES += endjson=@enduml
NO
。下面是使用 \startuml
命令的示例。
第一个参数指定图像的文件名。Doxygen 将在您在 DOTFILE_DIRS 标签后指定的路径(或文件)中查找文件。如果找到 dot 文件,它将用作 dot 工具的输入文件。生成的图像将放入正确的输出目录。如果 dot 文件名包含空格,则必须在文件名周围加上引号("...")。
第二个参数是可选的,可用于指定显示在图像下方的标题。即使此参数不包含任何空格,也必须用引号括起来。在显示标题之前,引号将被删除。
第三个参数也是可选的,可用于指定图像的宽度或高度。有关可能性的描述,请参阅 尺寸指示 段落和 \image 命令。
YES
将由 mscgen 从 <文件> 生成的图像插入到文档中。有关示例,请参见 https://www.mcternan.me.uk/mscgen/。
第一个参数指定图像的文件名。Doxygen 将在您在 MSCFILE_DIRS 标签后指定的路径(或文件)中查找文件。如果找到 msc 文件,它将用作内置 mscgen 工具的输入文件。生成的图像将放入正确的输出目录。如果 msc 文件名包含空格,则必须在文件名周围加上引号("...")。
第二个参数是可选的,可用于指定显示在图像下方的标题。即使此参数不包含任何空格,也必须用引号括起来。在显示标题之前,引号将被删除。
第三个参数也是可选的,可用于指定图像的宽度或高度。有关可能性的描述,请参阅 尺寸指示 段落和 \image 命令。
msc {
和结束 }
(这与 \msc 不同)。第一个参数指定图像的文件名。Doxygen 将在您在 DIAFILE_DIRS 标签后指定的路径(或文件)中查找文件。如果找到 dia 文件,它将用作 dia 的输入文件。生成的图像将放入正确的输出目录。如果 dia 文件名包含空格,则必须在文件名周围加上引号("...")。
第二个参数是可选的,可用于指定显示在图像下方的标题。即使此参数不包含任何空格,也必须用引号括起来。在显示标题之前,引号将被删除。
第三个参数也是可选的,可用于指定图像的宽度或高度。有关可能性的描述,请参阅 尺寸指示 段落和 \image 命令。
显示当处理此命令时,Doxygen 的配置文件中使用的配置选项 <配置选项>
的值。
... Project name = \doxyconfig PROJECT_NAME ...给出
... this is a \e really good example ...将产生以下文本
等效于 \a 和 \em。要强调多个单词,请使用 <em>多个单词</em>。
... this is a \em really good example ...将产生以下文本
等效于 \a 和 \e。要强调多个单词,请使用 <em>多个单词</em>。
结束以 \docbookonly 命令开始的文本块。
结束以 \dot 开始的块。
结束以 \msc 开始的块。
结束以 \startuml 开始的块。
将由 PlantUml 从 <文件> 生成的图像插入到文档中。
第一个参数指定图像的文件名。Doxygen 将在您在 PLANTUMLFILE_DIRS 标签后指定的路径(或文件)中查找文件。如果找到 plantuml 文件,它将用作 plantuml 程序的输入文件。生成的图像将放入正确的输出目录。如果 plantuml 文件名包含空格,则必须在文件名周围加上引号("...")。
第二个参数是可选的,可用于指定显示在图像下方的标题。即使此参数不包含任何空格,也必须用引号括起来。在显示标题之前,引号将被删除。
第三个参数也是可选的,可用于指定图像的宽度或高度。有关可能性的描述,请参阅 尺寸指示 段落和 \image 命令。
结束以 \htmlonly 命令开始的文本块。
结束以 \latexonly 命令开始的文本块。
结束以 \manonly 命令开始的文本块。
结束以 \rtfonly 命令开始的文本块。
结束以 \verbatim 命令开始的文本块。
结束以 \xmlonly 命令开始的文本块。
标记内联公式的开始和结束。
标记内联公式的开始,但与 \f$ 相反,它不会在 中显式打开数学模式。
标记以 \f( 开始的内联公式的结束。
标记在单独一行上居中显示的较长公式的开始。
标记在单独一行上居中显示的较长公式的结束。
标记特定环境中公式的开始。
{
是可选的,仅用于帮助编辑器(如 Vim
)通过使左括号和右括号的数量相同来进行正确的语法突出显示。标记特定环境中公式的结束。
开始一个文本块,该文本块仅逐字包含在生成的 HTML 文档中,并在生成的 XML 输出中标记为 <htmlonly>
。该块以 \endhtmlonly 命令结束。
此命令可用于包含对于 Doxygen 来说过于复杂的 HTML 代码(即小程序、java 脚本和需要特定属性的 HTML 标签)。
通常,\htmlonly 和 \endhtmlonly 之间的内容按原样插入。当您想插入具有块作用域的 HTML 片段(例如应在 <p>..</p> 之外显示的表格或列表)时,这可能会导致无效的 HTML。您可以使用 \htmlonly[block]
来使 Doxygen 结束当前段落并在 \endhtmlonly
后重新开始。
将图像插入到文档中。此命令是特定于格式的,因此如果您想插入多个格式的图像,则必须对每种格式重复此命令。
第一个参数指定应嵌入图像的输出格式。目前,支持以下值:html
、latex
、docbook
、rtf
和 xml
。
第二个参数指定图像的文件名。Doxygen 将在您在 IMAGE_PATH 标签后指定的路径(或文件)中查找文件。如果找到图像,它将被复制到正确的输出目录。如果图像名称包含空格,则必须在名称周围加上引号("...")。您也可以指定绝对 URL 而不是文件名,但 Doxygen 不会复制该图像,也不会检查其是否存在。
第三个参数是可选的,可用于指定显示在图像下方的标题。此参数必须在单行中指定,并且必须用引号引起来,即使它不包含任何空格。在显示标题之前会删除引号。
第四个参数也是可选的,可用于指定图像的宽度或高度。这对于 或 DocBook 输出(即 format=latex
或 format=docbook
)很有用。
sizeindication
可以指定要使用的宽度或高度(或两者的组合)。尺寸说明符在 中(例如 10cm
或 4in
或像 \textwidth
这样的符号宽度)。目前仅支持 inline
和 anchor
选项。如果指定了 inline
选项,图像将“在行内”放置,当存在标题时,它将在 HTML 中显示为工具提示(对于其他格式则忽略)。对于 anchor
选项,语法是:anchor:<anchorId>
。
这是一个注释块的示例
/*! Here is a snapshot of my new application: * \image html application.jpg * \image latex application.eps "My application" width=10cm */
这是配置文件相关部分的示例
IMAGE_PATH = my_image_dir
\includegraphics
命令支持,即封装的 PostScript (eps)、可移植网络图形 (png)、联合图像专家组 (jpg / jpeg)。 开始一个文本块,该文本块将仅逐字包含在生成的 文档中,并在生成的 XML 输出中标记为 <latexonly>
。该块以 \endlatexonly 命令结束。
此命令可用于包含 Doxygen 难以处理的 代码(即图像、公式、特殊字符)。您可以使用 \htmlonly 和 \endhtmlonly 对来提供适当的 HTML 替代方案。
注意: 环境变量(例如 $(HOME))在 -only 块中解析。
开始一个文本块,该文本块将仅逐字包含在生成的 MAN 文档中,并在生成的 XML 输出中标记为 <manonly>
。该块以 \endmanonly 命令结束。
此命令可用于将 groff 代码直接包含到 MAN 页面中。您可以使用 \htmlonly 和 \endhtmlonly 以及 \latexonly 和 \endlatexonly 对来提供适当的 HTML 和 替代方案。
此命令有一个参数,该参数会一直持续到第一个空行或遇到另一个 \li
。该命令可用于生成一个简单的、非嵌套的参数列表。每个参数都应以 \li
命令开头。
\li \c AlignLeft left alignment. \li \c AlignCenter center alignment. \li \c AlignRight right alignment No other types of alignment are supported.将产生以下文本
AlignLeft
左对齐。AlignCenter
居中对齐。AlignRight
右对齐等同于 \arg
强制换行。等同于 <br>,并受 printf
函数启发。
使用打字机字体显示参数 <word>。您可以使用此命令在运行文本中引用成员函数参数。
... the \p x and \p y coordinates are used to ...这将产生以下文本
x
和 y
坐标来 ...等同于 \c。要在打字机字体中包含多个单词,请使用 <tt>多个单词</tt>。
开始一个文本块,该文本块将仅逐字包含在生成的 RTF 文档中,并在生成的 XML 输出中标记为 <rtfonly>
。该块以 \endrtfonly 命令结束。
此命令可用于包含 Doxygen 难以处理的 RTF 代码。
注意: 环境变量(例如 $(HOME))在 RTF-only 块中解析。
开始一个文本块,该文本块将逐字包含在文档中。该块应以 \endverbatim 命令结束。所有命令在 verbatim 块中均被禁用。
\verbatim
命令包含一个 \endverbatim 命令,否则解析器会感到困惑!开始一个文本块,该文本块将仅逐字包含在生成的 XML 输出中。该块以 \endxmlonly 命令结束。
此命令可用于包含自定义 XML 标记。
此命令将反斜杠字符 (\
) 写入输出。在某些情况下,必须对反斜杠进行转义,因为 Doxygen 使用它来检测命令。
此命令将 at 符号 (@
) 写入输出。在某些情况下,必须对 at 符号进行转义,因为 Doxygen 使用它来检测 Javadoc 命令。
此命令启用/禁用特定于语言的过滤器。这可用于将不同语言的文档放入一个注释块中,并使用 OUTPUT_LANGUAGE 标签来过滤掉仅特定语言。使用 \~language_id
仅为特定语言启用输出,使用 \~
为所有语言启用输出(这也是默认模式)。
示例
/*! \~english This is English \~dutch Dit is Nederlands \~german Dies ist Deutsch. \~ output for all languages. */
此命令将 &
字符写入输出。必须对该字符进行转义,因为它在 HTML 中具有特殊含义。
此命令将 $
字符写入输出。在某些情况下,必须对该字符进行转义,因为它用于扩展环境变量。
此命令将 #
字符写入输出。在某些情况下,必须对该字符进行转义,因为它用于引用已记录的实体。
此命令将 <
字符写入输出。必须对该字符进行转义,因为它在 HTML 中具有特殊含义。
此命令将 >
字符写入输出。必须对该字符进行转义,因为它在 HTML 中具有特殊含义。
此命令将 %
字符写入输出。在某些情况下,必须对该字符进行转义,因为它用于防止自动链接到同时也是已记录的类或结构的单词。
此命令将 "
字符写入输出。在某些情况下,必须对该字符进行转义,因为它成对使用以指示未格式化的文本片段。
此命令将点号 (.
) 写入输出。当启用 JAVADOC_AUTOBRIEF 或 QT_AUTOBRIEF 时,或者当点号在行首跟随一个数字时,此命令可用于防止结束简短描述,或防止开始编号列表。
此命令将问号 (?
) 写入输出。当启用 JAVADOC_AUTOBRIEF 或 QT_AUTOBRIEF 时,此命令可用于防止结束简短描述。
此命令将感叹号 (!
) 写入输出。当启用 JAVADOC_AUTOBRIEF 或 QT_AUTOBRIEF 时,此命令可用于防止结束简短描述。
此命令将等号 (=
) 写入输出。在某些情况下,必须对该字符序列进行转义,因为它在 Markdown 标题处理中使用。
此命令将双冒号 (::
) 写入输出。在某些情况下,必须对该字符序列进行转义,因为它用于引用已记录的实体。
此命令将管道符号 (|) 写入输出。在某些情况下,必须对该字符进行转义,因为它用于 Markdown 表格。
此命令将两个破折号 (--) 写入输出。这允许将两个连续的破折号写入输出,而不是一个 en-dash 字符 (–)。
此命令将三个破折号 (---) 写入输出。这允许将三个连续的破折号写入输出,而不是一个 em-dash 字符 (—)。