Doxygen: HTML too large
本文关键字:large too HTML Doxygen | 更新日期: 2023-09-27 18:08:47
我有一个非常大的类,非常有文档记录。oxygen用于生成HTML文档,但是对于这个类,HTML文件很大~12 MB,这对我的品味来说太大了。
这是因为Doxygen在一个文件中列出了类的所有文档,但在这种情况下,为了有一个合理的页面,最好将类函数文档拆分到单独的页面中。
我想问的是:这有什么解决办法吗?
也许有一个特殊的选项/技巧?还是……也许我可以禁用该类的"正常"文档,并将类函数文档复制到一个更有组织的页面中?在这种情况下,我应该@copydoc这些函数,不是吗?
你的建议是什么?这是可能的!
存在一个配置键:'SEPARATE_MEMBER_PAGES=YES'。这将为每个类成员创建一个不同的页面。
下一个问题是Doxygen生成的文件数量(一个文件系统噩梦),但这可以通过设置'CREATE_SUBDIRS=YES'来解决。:至少这将文件稀疏到目录中,因此使它们易于管理。
几天后…
。问题仍然存在……不,它比以往任何时候都更糟糕:每个单独的班级成员页面在左侧列出所有班级成员:4K成员页面,每个1mb制作……4 GB ?OMG .
因此,我决定从结果HTML中删除该表清单(如此庞大)。幸运的是,本节对所有生成的文件都是统一的。我编写了一个实用程序来实现这一点。下面是最有用的代码片段(使用 htmllagilitypack ):
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文件,并在不同的线程中编写它们(否则会花费太长时间)。
结果:从4gb传递到60mb !
如果您对结果感到好奇:请查看本文档页面的链接页面