如何在Doxygen中避免侧边栏显示引用项目页面或添加区分标题
我之前处理过类似的Doxygen跨项目引用场景,刚好能帮你解决这两个问题,下面分别给出具体方案:
需求1:不在侧边栏显示引用项目页面,但保留跨项目链接功能
这个问题的核心是让Doxygen只使用引用项目的tag文件生成链接,而不把引用项目的页面整合到当前项目的文档结构里。你只需要修改Doxyfile中的TAGFILES配置,给引用的tag文件加上NO_DOCS选项即可:
假设你原来的TAGFILES配置是这样的:
TAGFILES += other_project.tag=../path/to/other_project_docs/
修改成:
TAGFILES += other_project.tag=../path/to/other_project_docs/,NO_DOCS
NO_DOCS选项会告诉Doxygen:不要把这个tag文件里的文档内容加入到当前项目的输出中,但仍然会保留所有跨项目的链接功能——当你点击当前项目中指向引用项目的元素时,还是会正常跳转到引用项目的对应文档页面,只是这些页面不会出现在当前项目的侧边栏Treeview里了。
需求2:为侧边栏中的引用项目页面添加所属项目的区分标题
如果你希望保留引用项目在侧边栏的显示,但能清晰区分哪些是引用项目的页面,可以用Doxygen提供的PREFIX选项给引用项目的所有元素加上统一前缀:
同样修改Doxyfile中的TAGFILES配置,加上PREFIX选项,比如给引用项目加上[OtherProject] 的前缀:
TAGFILES += other_project.tag=../path/to/other_project_docs/,PREFIX="[OtherProject] "
这样一来,引用项目的所有页面标题(比如“欢迎页”“构建指南”)都会被自动加上前缀,在侧边栏里就会显示成[OtherProject] 欢迎页、[OtherProject] 构建指南,和当前项目的页面一目了然地区分开。
如果你想更灵活地分组,还可以在引用项目的Doxygen配置中,把所有页面都归到同一个自定义组里(比如用@defgroup OtherProjectDocs 其他项目文档标记所有页面),然后在当前项目的Doxyfile中启用GROUP_NESTED_COMPOUNDS = YES,这样侧边栏里会出现一个“其他项目文档”的分组,引用项目的所有页面都会放在这个分组下面,结构更清晰。
内容的提问来源于stack exchange,提问作者iAdjunct

