【发布时间】:2011-10-28 06:52:45
【问题描述】:
我正在使用一个没有索引的 CHM 文件,这使得搜索变得困难。
是否可以通过某种方式反编译并使用索引重新创建?
【问题讨论】:
标签: html indexing chm creation
我正在使用一个没有索引的 CHM 文件,这使得搜索变得困难。
是否可以通过某种方式反编译并使用索引重新创建?
【问题讨论】:
标签: html indexing chm creation
您想要什么,一种构建工具来完成此任务的方法,或者一个可以轻松为您完成任务的工具?我没有后者,但我确实知道一种方法来做前者。 (这是一个编程论坛 :-)
以下 delphi/freepascal 程序/脚本从 latex 2 html 转换器 (tex4ht) 加载多文件 HTML 输出,修复损坏的链接,重建 TOC 并折叠在一个单独的 (kwd) 文件中,其中包含关键字到索引中。
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 突变、链接修复)。
更新到下面的 cmets。
CHM 包不生成索引。文档工具(delphicodetodoc 或 fpdoc)必须将相关的索引信息传递给 CHM 编译器。作为 XML 或通过构建调用各种方法的树。如果你的 html 是从 delphitodoc 之类的工具生成的,那么尝试使用上述方法自己重建索引是很疯狂的。该工具具有更高级别的视图,可以生成更高质量的索引,而且适应它的工作可能会更少。
请注意,我假设您真正的意思是索引,而不是全文搜索,它是自动的。
我不知道 delphicodetodoc 是如何工作的(并且由于严格的构建要求,我不会尝试),但听起来 delphicodetodoc 在 CHM 生成中并不是那么好。
fpdoc 的设计决定是它不会编写源代码文档(被认为是混乱的),我认为这不会改变。
【讨论】: