如何消除Doxygen生成的md__mark_down_files_2*冗余HTML文件?
解决Doxygen 1.10.0生成冗余md__前缀HTML文件的问题
问题原因
你遇到的冗余md__mark_down_files_2*.html文件,是因为Doxygen同时执行了两份解析逻辑:
- 解析Markdown文件中Doxygen命令(如
\mainpage、\page)生成结构化文档页面; - 将整个Markdown文件当作独立的普通Markdown文档,额外渲染一份页面。
可行解决方法
方法1:修改文件扩展名(最直接有效)
将所有包含Doxygen命令的Markdown文件扩展名从.md改为.dox,Doxygen默认会将.dox文件视为纯注释命令文件,仅解析其中的Doxygen指令和注释内的Markdown内容,不会生成冗余页面。
步骤:
- 重命名文件:
Mainpage.md→Mainpage.dox,SubpageFirstL1.md→SubpageFirstL1.dox,以此类推。 - 更新Doxyfile配置:
# 指定仅处理.dox文件 FILE_PATTERNS = *.dox # 保持INPUT路径不变 INPUT = ./MarkDownFiles
方法2:将所有内容包裹在Doxygen注释块内(无需改扩展名)
如果不想修改文件扩展名,确保Markdown文件的全部内容都放在Doxygen的注释块中,避免Doxygen将文件本身当作独立页面解析。
以Mainpage.md为例,修改后内容:
/** \mainpage MainPage Some general info. This manual is divided in the following sections: - \subpage SubpageFirstL1 - \subpage SubpageSecondL1 "Subpage Second L1" */
其他子页面文件同理,将所有文字、Markdown格式内容都放入/** ... */或/*! ... */注释块内。
同时在Doxyfile中添加:
# 剥离Markdown文件头部的非注释内容(如果有) MARKDOWN_STRIP_FROM_HEADER = YES
方法3:调整MARKDOWN_ID_STYLE配置
尝试将MARKDOWN_ID_STYLE从DOXYGEN改为GITHUB,部分场景下可避免重复生成页面:
MARKDOWN_ID_STYLE = GITHUB
验证方法
修改配置或文件后,删除原输出目录下的html文件夹,重新运行Doxygen,检查生成的HTML文件是否不再出现md__前缀的冗余文件。
内容的提问来源于stack exchange,提问作者Michael H
相关产品推荐
相关产品推荐

