我有一个非常大的课程,这是非常有记录的。 Doxygen用于生成HTML文档,但对于这个类,HTML文件大~12 MB,这对我来说太过分了。
这是因为Doxygen在一个文件中列出了该类的所有文档,但在这种情况下,为了拥有合理的页面,需要在单独的页面中拆分类函数文档。
我在问:这有什么解决办法吗?
也许有一个特殊选项/技巧吗?要么... 也许我可以禁用此类的“普通”文档,并将类函数文档复制到更有组织的页面中?在这种情况下,我将@copydoc那些函数,不是吗?
你有什么建议?
答案 0 :(得分:1)
有可能!
有一个配置键:'SEPARATE_MEMBER_PAGES = YES'。这将为每个班级成员创建一个不同的页面。
下一个问题是Doxygen生成的文件数量(文件系统噩梦),但这可以通过设置'CREATE_SUBDIRS = YES'来解决:至少将这个稀疏文件放到目录中,所以要制作它们管理。
几天后......
没有。问题仍然存在......不,它比以往更糟糕:每个单独的类成员页面列出左侧的所有类成员:4K成员页面,每个1 MB使... 4 GB? OMG。
因此,我决定从结果HTML中删除该表列表(如此多的扩展)。幸运的是,此部分在所有生成的文件上都是统一的我制作了一个实用程序来实现这一目标。这是最有用的代码片段(使用 HtmlAgilityPack ):
HtmlAgilityPack.HtmlNode divNode = htmlDoc.DocumentNode.SelectSingleNode("//body/div[@class='contents']/table/tr/td/div[@class='navtab']");
if (divNode != null) {
divNode.ParentNode.RemoveChild(divNode, false);
Console.WriteLine("Queued {0}", htmlPath);
lock (sReducedHtmlPathsLock) {
sReducedHtmlPaths.Add(htmlPath, htmlDoc);
sReducedHtmlPathsSemaphore.Release();
}
}
当然我构建了一个多线程程序,它将一堆HTML文件加载到不同的线程上,并将它们写在不同的线程中(否则需要太长时间)。
结果:从4 GB传递到60 MB!
您对结果感到好奇:请参阅this documentation page中的链接页面。