我在 Doxygen 中创建了许多自定义页面。我想自定义主菜单中页面的顺序。下面是我当前导航菜单的图片。我想更改顺序,因此先是概述,第二是安装,第三是简介,等等。有没有办法做到这一点?
5 回答
经过一番调查,似乎 Doxygen 目前不支持以自定义(或任何)方式对页面进行排序。
正如@Toby 所提到的,在 Doxygen 中确保所需页面顺序的当前方法是确保以相同的顺序解析页面条件(\page)。例如,您可以通过手动指定文件来实现所需的顺序,例如:
INPUT = Developers.dox \
Hive_Training.dox \
Installation.dox \
Introduction.dox \
Models.dox \
Overview.dox \
Users.dox \
Files.dox
这一点都不理想,但它确实有效。我发现,如果您希望在 Doxygen 配置文件中使用目录路径,您可以创建一个“页面顺序”文件,以便在任何其他内容之前先解析。例如:
INPUT += PageOrder.dox
INPUT += ../my_module_1/content/
INPUT += ../my_module_2/content/
然后将所有页面引用添加到PageOrder.dox
文件中:
\page developers Developers
\page hive_training Hive Training
\page installation Installation
\page introduction Introduction
\page models Models
\page overview Overview
\page users Users
\page files Files
这又是不理想的;但是,您的维护过程现在驻留在单页订单文件中(而不是接触一 (1) 个或多个 Doxygen 配置文件)。
Doxygen 按字母顺序处理自定义页面文件名。
因此,您可以将自定义页面文件命名为:
- _1_file1.dox
- _2_file2.dox
- ETC...
结果,它们将在生成的文档中以相同的顺序出现。此解决方案避免修改任何配置文件!
我找到了一种相当麻烦的方法来实现这一点。以前,我将所有自定义 doxygen 文件(图像、页面等)放在一个名为 input 的目录中。
我的每个页面都在一个单独的文件中(例如 main_page.dox、page1.dox、page2.dox 等)
我将自定义页面移动到与输入目录处于同一级别的名为 pages 的单独目录中。
(我还将输入目录重命名为图像,并IMAGE_PATH
相应更改)
然后,在 doxygen 配置文件中,我按照我想要的顺序将每个页面文件的显式路径添加到INPUT
变量中。例如:
INPUT= . Documentation\images \
Documentation\pages\main_page.dox \
Documentation\pages\page2.dox \
Documentation\pages\page3.dox
这意味着每次我添加一个新页面时,我都必须将其路径添加到INPUT
,所以正如我在顶部所说的那样,这很麻烦。但比在介绍等之前出现结论要好
这适用于 HTML 和 LaTeX - 尚未使用其他格式进行测试
对 HTML/CHM 输出进行分组的一种方法是通过嵌套在不同文件中的 @page 和 @subpage 元素。
所以我过去所做的是有一个登陆页面加上几个定义部分布局的“结构”页面。每个参考都需要在自己的文件中。
例如:
\mainpage
# Welcome to my main page #
Some text
\subpage IntroductionSection
\subpage DetailsSection
\subpage SamplesSection
然后为每个子时代建立一个结构,例如(IntroStructure.md)
Introduction {#IntroductionSection}
===============
# An introduciton to the topic #
\subpage GettingStarted
\subpage HowTo
\subpage DeepDive
请注意,每个子页面都需要再次使用 Deep Dive {#DeepDive} 引用。
这就是我处理大量降价文档的方式。尽管您有一定的文件开销,但对 html/ chm 非常有效。