如何使用Doxygen制作介绍页面

How to make an introduction page with Doxygen

我使用Doxygen为我的SDK制作了文档。 它包含文件,名称空间,类,类型等的列表 - 我在代码中作为Doxygen注释放置的所有内容。 现在我想写一些关于SDK(介绍类型)的一般信息,它与任何代码元素都没有直接关系。 我想将此介绍放在文档起始页面上。 我怎样才能做到这一点?


看看mainpage命令。

另外,看看另一个线程的答案:如何在Doxygen中包含自定义文件。它声明有三个扩展,其中doxygen类作为附加文档文件:.dox.txt.doc。具有这些扩展名的文件不会出现在文件索引中,但可以用于在最终文档中包含其他信息 - 对于必要的文档非常有用,但这些文档并不适合包含在您的源代码中(例如,常见问题解答)

因此,我建议您在项目目录中使用mainpage.dox(或类似命名的)文件来向您介绍SDK。请注意,在此文件中,您需要放置一个或多个C / C ++样式注释块。


请注意,使用Doxygen版本1.8.0,您还可以添加Markdown格式化页面。为此,您需要创建具有.md.markdown扩展名的页面,并将以下内容添加到配置文件中:

1
2
INPUT += your_page.md
FILE_PATTERNS += *.md *.markdown

有关详细信息,请参见http://www.doxygen.nl/manual/markdown.html#md_page_header。


从v1.8.8开始,还有选项USE_MDFILE_AS_MAINPAGE。因此,请务必添加您的索引文件,例如README.md,到INPUT并将其设置为此选项的值:

1
2
INPUT += README.md
USE_MDFILE_AS_MAINPAGE = README.md


在文档中添加包含您的内容的任何文件,例如toc.h:

1
2
3
4
5
6
7
@ mainpage Manual SDK
<hr/>
@ section pageTOC Content
  -# @ref Description
  -# @ref License
  -# @ref Item
...

并在你的Doxyfile

1
INPUT = toc.h \

示例(俄语):

  • scale-tech.ru/luckyBackupW/doc/html/index.html(来自web.archive.org)

  • scale-tech.ru/luckyBackupW/doc/html/toc_8h_source.html(来自web.archive.org)


以下语法可能有助于为doxygen添加主页面和相关子页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*! \mainpage Drawing Shapes
 *
 * This project helps user to draw shapes.
 * Currently two types of shapes can be drawn:
 * - \subpage drawingRectanglePage"How to draw rectangle?"
 *
 * - \subpage drawingCirclePage"How to draw circle?"
 *
 */

/*! \page drawingRectanglePage How to draw rectangle?
 *
 * Lorem ipsum dolor sit amet
 *
 */

/*! \page drawingCirclePage How to draw circle?
 *
 * This page is about how to draw a circle.
 * Following sections describe circle:
 * -
ef groupCircleDefinition"Definition of Circle"
 * -
ef groupCircleClass"Circle Class"
 */

如下创建组也有助于设计页面:

1
2
3
4
5
6
/** \defgroup groupCircleDefinition Circle Definition
 * A circle is a simple shape in Euclidean geometry.
 * It is the set of all points in a plane that are at a given distance from a given point, the centre;
 * equivalently it is the curve traced out by a point that moves so that its distance from a given point is constant.
 * The distance between any of the points and the centre is called the radius.
 */

这里可以找到一个例子


我用v 1.8.13尝试了以上所有内容但无济于事。
对我(在macOS上)有用的是使用doxywizard-> Expert标签来填充USE_MD_FILE_AS_MAINPAGE设置。

它对我的Doxyfile进行了以下更改:

1
2
3
4
5
USE_MDFILE_AS_MAINPAGE = ../README.md
...
INPUT                  = ../README.md \
                         ../sdk/include \
                         ../sdk/src

注意INPUT的行终止,我刚刚使用空格作为文档中指定的分隔符。 AFAICT这是Doxyfile的不工作版本和工作版本之间的唯一变化。