You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Doxygen导航树中将子页面标题嵌套在对应章节标题下

Doxygen导航树嵌套子页面的实现方案

针对你在Doxygen v1.8.13中希望将@subpage引用的页面作为对应章节子项显示的需求,结论是:原生功能里没有直接支持该需求的官方方法,但可以通过以下几种方案实现类似效果:

方案1:改用章节嵌套层级替代独立页面

放弃使用@page定义独立子页面,直接在目标章节下用@subsection或@subsubsection编写嵌套内容。这种方式能直接在导航树里形成层级,但缺点是内容无法独立维护,适合篇幅较短的子内容。

方案2:用分组功能间接实现导航嵌套

虽然你认为分组是给API文档用的,但其实可以借助@defgroup和@ingroup组织描述性文档,实现导航树的嵌套:

  1. 给目标章节关联一个分组
  2. 让子页面加入该分组
  3. 开启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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 02:20:28