如何在Doxygen导航树中将子页面标题嵌套在对应章节标题下
Doxygen导航树嵌套子页面的实现方案
针对你在Doxygen v1.8.13中希望将@subpage引用的页面作为对应章节子项显示的需求,结论是:原生功能里没有直接支持该需求的官方方法,但可以通过以下几种方案实现类似效果:
方案1:改用章节嵌套层级替代独立页面
放弃使用@page定义独立子页面,直接在目标章节下用@subsection或@subsubsection编写嵌套内容。这种方式能直接在导航树里形成层级,但缺点是内容无法独立维护,适合篇幅较短的子内容。
方案2:用分组功能间接实现导航嵌套
虽然你认为分组是给API文档用的,但其实可以借助@defgroup和@ingroup组织描述性文档,实现导航树的嵌套:
- 给目标章节关联一个分组
- 让子页面加入该分组
- 开启Doxygen的分组嵌套配置
示例代码调整如下:
/** * @mainpage Mainpage * @section section_1 Section 1 * Description of section 1 * * @section section_2 Section 2 * Section 2 is composed of the following modules: * - @ref module_1_page * - @ref module_2_page * * @defgroup sec2_modules Section 2 Modules * @ingroup section_2 // 将分组关联到section_2章节 */ /** * @page module_1_page Module 1 * @ingroup sec2_modules // 让页面加入目标分组 * Module 1 description */ /** * @page module_2_page Module 2 * @ingroup sec2_modules * Module 2 description */
然后在Doxyfile中设置:
GROUP_NESTED = YES
生成后导航树里,Section 2下方会出现"Section 2 Modules"分组,两个子页面会嵌套在该分组下,间接实现你要的层级效果。
方案3:自动化修改生成的HTML
既然你已经通过手动修改HTML实现了预期效果,可以写一个简单的脚本(比如Python+BeautifulSoup),在Doxygen生成文档后自动遍历导航树DOM,根据页面间的引用关系调整层级结构,避免每次手动修改的重复工作。
内容的提问来源于stack exchange,提问作者Davide
相关产品推荐
相关产品推荐

