如何使用Doxygen制作简介页


102

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


Answers:


95

看一下mainpage命令。

另外,看看另一个线程的答案:如何在Doxygen中包括自定义文件。它指出,有三个扩展,并Doxygen的类作为附加的文档文件:.dox.txt.doc。具有这些扩展名的文件不会显示在文件索引中,但可以用于在最终文档中包括其他信息-对于必需但实际上并不适合包含在源代码中的文档非常有用(例如,FAQ)

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


3
至少markdown文件(.md.markdown)也被视为其他文档文件。我更喜欢它们,.dox因为它们不需要周围的代码注释,并且可以使用markdown编辑器很好地进行编辑-没有缺点。
Pascal,

56

从v1.8.8开始,还提供了option USE_MDFILE_AS_MAINPAGE。因此,请确保将索引文件(例如README.md)添加到INPUT并将其设置为此选项的值:

INPUT += README.md
USE_MDFILE_AS_MAINPAGE = README.md

4
除此之外,如果要使用README.md作为主页,请确保它在INPUT列表中排在第一位。当有多个候选主页面时,选择解析时遇到的第一个,似乎如此。
Lester Peabody 2015年

2
顺便说一句,在doxygen gui中,您只需要在专家>输入>输入下包括.md文件即可。
阿德里安·洛佩兹

USE_MDFILE_AS_MAINPAGE没有为我工作。根据文档,您必须{#mainpage}在降价文档的标题之后添加。这确实有效。
samvv

2
@samvv我没有在降价文档中添加任何其他内容。我只是使用了INPUT = README.mdthen INPUT += src(遵循@Lester的建议),并且the USE_MDFILE_AS_MAINPAGE = README.md就像一个魅力一样工作。版本:$ doxygen --version回到1.8.11我身边。
哈维·蒙特罗

1
在Doxygen 1.8.2中,唯一起作用的是\mainpage在内部添加内容(可以在评论中进行操作(请参阅此链接,了解MarkDown中的评论)。这仍然创建了Related Pages区域,并带有占位符(空)。这很烦人,但是至少我知道了主页
Evgen

55

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

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

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


6
实际上,当前的1.8.0版本支持markdown BUT并未将其视为文档。因此,您将获得文件和目录部分中列出的markdown类。解决方案是将添加dox=mdEXTENSION_MAPPING并将您的markdown扩展名重命名为.dox。因此配置如下所示:INPUT += your_page.dox EXTENSION_MAPPING += dox=md
抗毒药2012年

6
好点子。我将对此进行更正,以使.md和.markdown与.dox类似。
doxygen'3

4
不幸的是,它最终出现在“相关页面”下,而不是主页下
Evgen

7

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

/*! \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:
 * - \ref groupCircleDefinition "Definition of Circle"
 * - \ref groupCircleClass "Circle Class"
 */

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

/** \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.
 */

可以在这里找到一个例子


@FelixSFD感谢您的反馈。我根据您的回答更新了我的答案。
Birol Capa


3

我尝试使用v 1.8.13进行上述所有操作均无济于事。(在macOS上)对我有用的是使用doxywizard-> Expert标签填充USE_MD_FILE_AS_MAINPAGE设置。

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

USE_MDFILE_AS_MAINPAGE = ../README.md
...
INPUT                  = ../README.md \
                         ../sdk/include \
                         ../sdk/src

请注意,对于的行终止INPUT,我刚刚按照文档中的说明使用空格作为分隔符。AFAICT这是Doxyfile的无效版本与有效版本之间的唯一更改。


1
澄清-doxywizard是安装在macOS上的GUI前端。
VorpalSword

我必须添加\ mainpage才能将README.md识别为
主页
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.