Doxygen:是否可以去除 CHM 索引中的命名空间名称?

Doxygen: Is it possible to strip namespace names in CHM index?

我正在开发一个广泛使用名称空间和 doxygen 的 C++ 项目。出于各种原因,我更喜欢使用由 MS HHC 编译的 CHM 文件而不是 HTML 目录。其中之一就是CHM查看器中非常方便的索引搜索。

但是索引中的调用名称总是以它们的命名空间为前缀,这迫使 CHM 文件的用户在搜索中输入 Namespace::Sub-Namespace::[...]::ClassName。

对此,我在doxygen配置文件中修改了如下设置(参考工具自带的默认设置):

SHOW_NAMESPACES        = NO
HIDE_SCOPE_NAMES       = YES

这将删除除 CHM 索引之外的所有名称空间名称。 (如何)也可以去掉 CHM 索引中的命名空间前缀?

据我所知并尝试过一个小型 C# 项目,答案是 - 不。

我在这个阶段看到的一个解决方案是编辑生成的 index.hhk 并通过 HTMLHelp Workshop 再次编译。请查看您的 index.hhk,您会在 Doxygen HTML 输出子文件夹中找到它。

index.hhk 文件是一个文本文件,可以用任何文本编辑器打开,例如记事本++。只有一些名称空间,您可以根据需要制作 RegEx 并替换例如C_Sharp_CHM:: 如下面的屏幕截图所示,什么都没有。但是要小心使用它并在进入生产用例之前尝试。

如您所见,index.hhk 是一种旧文件格式,而不是今天使用的 HTML。通常每个索引关键字都有一个 link 和一个值(见屏幕截图,此处编辑文本格式以便更好地阅读)。

要编译 index.hhp,您需要打开命令提示符,导航到输出文件夹并在 Windows 上键入 "%programfiles(x86)%\HTML Help Workshop\hhc" index.hhp 10台机器。