繁体   English   中英

Doxygen:HTML太大了

[英]Doxygen: HTML too large

我有一个非常大的课程,非常详细。 Doxygen用于生成HTML文档,但是对于这个类,HTML文件很大~12 MB,这对我来说太过分了。

这种情况发生了,因为Doxygen在一个文件中列出了该类的所有文档,但在这种情况下,为了拥有合理的页面,需要在单独的页面中拆分类函数文档。

我在问:这有什么解决方案吗?

也许这有一个特殊的选择/技巧? 或者......也许我可以禁用此类的“普通”文档,并将类函数文档复制到更有组织的页面中? 在这种情况下我会@copydoc那些功能,不是吗?

你有什么建议吗?

有可能的!

. 有一个配置键: 这将为每个类成员创建一个不同的页面。

: at least this sparse files into directories, so make them manageable. 下一个问题是Doxygen生成的文件数量(文件系统噩梦),但这可以通过设置 :至少将这些稀疏文件放入目录中,因此使它们易于管理。


几天后......


不会。问题仍然存在......不,它比以往更糟糕:每个单独的类成员页面列出左侧的所有类成员:4K成员页面,每个1 MB使... 4 GB? 我的天啊。

所以,我决定从结果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!

您对结果感到好奇:请参阅此文档页面中的链接页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM