问题描述
我正在与 Microsoft Html Help Workshop 合作并尝试构建一个帮助项目,其中包含超过 19k 的帮助文件,包括 html、css、png 等。我构建了一个 hhp 文件作为 new.hhp 并在其中添加了以下几行>
[OPTIONS]
Auto Index=Yes
Auto TOC=9
Compatibility=1.1 or later
Compiled file=new.chm
Default Window=TriPane
Default topic=HomePage.htm
display compile progress=Yes
Error log file=log.log
Full-text search=Yes
Index file=Index.hhk
Language=0x409 English (United States)
[WINDOWS]
TriPane="new","Index.hhk","HomePage.htm",0xe2520,255,0x304e,[0,800,600],2,0
[FILES]
我选中了创建二进制索引的选项,如图 here。
我选中了包含关键字的选项,如 here 所示。
我将其编译为 new.chm 并搜索所有必需的主题,但索引文件为空,如 here 所示。
我还检查了 index.hhk 文件,它也是空的,如图 here 所示..
我不可能为 19k 文件手动包含关键字。我该怎么做才能让所有 html 文件中的关键字都添加到索引中并且我没有得到空索引? 感谢关注。
解决方法
简短的回答 - 没有自动化的方法!
关键字是通过 Microsoft HTMLHelp Workshop 手动分配给主题的。请记住 - CHM 文件和 HTMLHelp Workshop 的技术开发已有 25 年的历史。但不幸的是,即使在今天,Windows 下也没有真正的替代品。
您可能希望 从 HTML 文件中包含关键字 选项会自动集成关键字(HTML 语法,例如:<meta name="keywords" content="CSS,Script">
)。但是 CHM 的关键字在这里有不同的想法和一些特殊的东西(例如 <meta Name="MS-HKWD" content="keyword">
)。我不记得了,但当时(25 年前)可能还没有 HTML 标签 keywords
。
你知道,单字索引大家都很熟悉,几乎从印刷开始就被用在参考书和商业书籍的后面。但是为 HTMLHelp 文件 (CHM) 创建一个好的索引非常耗时并且需要大量的工作。由于用户越来越多地使用 CHM Viewer(或 Google)的全文搜索,我现在很少创建复杂的索引。
(1) 您可能希望自己编写脚本来创建 index.hhk
文件,例如:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="generator" content="Microsoft® HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</head>
<body>
<OBJECT type="text/site properties">
</OBJECT>
<UL>
<LI><OBJECT type="text/sitemap">
<param name="Name" value="Flowers">
<param name="Name" value="Flowers">
<param name="Local" value="Garden/flowers.htm">
</OBJECT>
<LI><OBJECT type="text/sitemap">
<param name="Name" value="Garden">
<param name="Name" value="Garden">
<param name="Local" value="Garden/Garden.htm">
</OBJECT>
<LI><OBJECT type="text/sitemap">
<param name="Name" value="How one grows trees">
<param name="Name" value="How one grows trees">
<param name="Local" value="Garden/tree.htm">
</OBJECT>
</UL>
</BODY>
</HTML>
(2) 您可能想要使用 FAR HTML 之类的免费软件工具(推荐使用向导!):
请注意 - 像 FAR HTML 这样的免费软件工具正在使用标签的完整内容来生成索引,并且不会为帮助文件的索引输出单个单词。
(3) 您可以在以下位置找到更多详细信息: