如何用Doxygen生成单页全局函数索引?1.8.14版本遇问题求助
嘿,我之前在处理大型Qt项目的Doxygen文档时也碰到过一模一样的问题!从Doxygen 1.8.5版本开始,官方就把单页全局函数索引替换成按字母拆分的版本了,说是为了优化大项目文档的加载速度,但确实给习惯用单页索引的开发者添了麻烦。针对你的情况,这里有几个可行的解决思路:
修改HTML模板强制生成单页索引
Doxygen的HTML输出是基于模板的,你可以在Gentoo系统里找到默认模板目录(一般是/usr/share/doxygen/templates),把functions.html模板文件复制出来修改。找到模板里处理字母分组的循环逻辑,把它改成直接遍历所有函数条目,这样生成的页面就会把所有函数汇总到同一页里。不过这个需要你懂一点HTML和Doxygen的模板语法,适合愿意动手定制的场景。用全局搜索功能替代单页索引
其实默认情况下Doxygen的SEARCHENGINE是开启的,你可以通过文档页面顶部的搜索框直接搜索函数名,对于大型项目来说,这个定位效率可能比翻单页索引还高,算是个实用的替代方案。手动创建自定义汇总页面(不推荐大型项目)
你可以在项目的某个头文件里添加一个自定义页面,比如用\page all_global_functions 全局函数索引命令,然后用\ref命令逐个引用所有函数。但这个方法显然不适合大型项目,手动维护太费劲了,除非你的函数数量很少。降级到Doxygen 1.8.4版本
如果你实在离不开单页全局函数索引,那可以在Gentoo里降级安装1.8.4版本。Portage支持安装旧版本软件,你可以去/usr/portage/app-doc/doxygen目录找到对应的旧ebuild文件,或者用ebuild命令手动安装。不过要注意,旧版本可能对新的Qt语法支持不够好,也可能存在一些已知bug,需要权衡利弊后再决定。
另外你提到菜单里的“Classes => Class members => Functions wi...”选项,那个是类成员函数的分类汇总,并不是全局的所有函数索引,所以没法替代单页全局索引的功能。
内容的提问来源于stack exchange,提问作者hansfn

