我正在使用一个没有索引的CHM文件,这会使搜索变得困难。
是否可以以某种方式对其进行反编译并使用索引重新创建?
答案 0 :(得分:1)
你想要什么,一种构建工具来实现这一目标的方法,或者一种能够为你轻松完成工具的工具?我没有后者,但我确实知道做前者的方法。 (这是一个编程论坛: - )
以下delphi / freepascal程序/脚本从latex 2 html转换器(tex4ht)加载多文件HTML输出,修复损坏的链接,重建TOC并将单独的(kwd)文件折叠到索引中。 / p>
http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/compilelatexchm.pp?view=markup&root=docs
您可以尝试使用html解析例程来增强此功能,以扫描关键字,手动过滤它们,然后从CHM解压缩器的输出开始将其反馈到修改过的脚本。 (CHM解压缩工具附带Free Pascal 2.4.4,这些也可以将CHM内部文件存储到普通文件中,因此您可以在代中重复使用它们)
该脚本看起来很复杂,但部分原因在于它重写了HTML代码(主题标题,TOC突变,链接修复)。
更新以下评论。
CHM包不生成索引。文档工具(delphicodetodoc或fpdoc)必须将相关的索引信息传递给CHM编译器。无论是作为XML还是通过构建调用各种方法的树。如果你的html是从像delphitodoc这样的工具生成的,那么尝试使用上面的方法自己重建索引是很疯狂的。该工具具有更高级别的视图,可以生成更高质量的索引,并且可能需要更少的工作来适应它。
请注意,我假设你真的是指自动索引,而不是全文搜索。
我不知道delphicodetodoc是如何工作的(并且由于我不打算尝试的严格的构建要求),但问题听起来像delphicodetodoc在CHM生成中并不是那么好。
fpdoc作为设计决定,它不会做源内文档(被认为是凌乱的),我认为这不会改变。