用于大型项目的CHM替代CHM

时间:2016-07-08 20:40:05

标签: c# chm sandcastle

我们的SDKs API目前(以及其他)使用Sandcastle生成的CHM文件进行了记录。它们的大小各约为40MB。最近,我们一直在尝试在我们的网站上托管我们的API文档以及其他形式的文档,例如教程,示例和通用信息。不幸的是,第一次尝试让Sandcastle产生MarkDown或HTML结果大约5GB的文件夹,这对我们的喜爱来说有点太大了。我们粗略地谈论50.000-75.000个文件。 40MB的CHM代表约。 37.000个文件。

是否有任何好的替代品可以生成可接受尺寸的API文档,或者CHM是否良好? (或者Sandcastle是不是很难产生HTML?)

1 个答案:

答案 0 :(得分:1)

短篇小说 - 没有其他选择。 CHM很好,Sandcastle制作干净的HTML。我对这么大的CHM文件没什么经验,但是后面有一些想法。

我认为你已经很好地配置了Sandcastle,例如取消选中Indent rendered HTML,这是一个很好的工作流程,可帮助您在编写如此大的CHM时帮助创作。

Marco在评论中提到CHM压缩是体面的。他是对的 - 正如您在自己的测试中看到的那样,转移到基于网络的帮助(40MB> 5GB),您可以获得更好的压缩。

基于Web的帮助和编译的帮助之间存在不同的观点。开发人员通常希望将封闭文档作为CHM文件而不是基于Web的帮助。另一方面,外部客户经常要求在互联网上提供文档(有时也是内部用户)。

  • 询问您的开发人员和营销人员,并尝试拆分SDK文档。
  • 检查文档中是否添加了高分辨率图像 工作流程(在使用Sandcastle时不会出现这种情况)。 他们经常炸掉最终的CHM。
  • 检查您是否使用合并的CHM'并且可以使用FAR HTML来压缩ITS 文件(CHM文件,CHW文件)。尝试它以满足您的需求。

最后一点允许您压缩CHM中的死区(如果有)。大多数CHM不会压缩很多。事实上,一些CHM实际上可能增长几KB。要压缩CHM文件,我们只需将Istorage API函数副本用于临时文件,然后将文件重命名为原始CHM文件。生成的CHM具有相同的文件内容,但没有空填充。

enter image description here

为什么压缩?真正的优势在于减少CHW文件。 CHW文件包含所有合并(或收集)CHM的组合索引。它们是在运行中创建的,具有压缩速度。您可以安全地删除CHW,因为HTML帮助将在您下次打开CHM时重新创建它。运送它们是有意义的,因为10 MB的文件将减少大约80%到2 MB。如果合并的CHM中没有索引,则看不到CHW文件。