使用 Microsoft HTML Help Workshop 编译的 chm 文件中的索引为空

Index is empty in a chm file compiled with Microsoft HTML Help Workshop

我正在与 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,0,800,600],,,,,2,,0
   [FILES]

我选中了创建二进制索引的选项,如图 here。

我选中了包含关键字的选项,如图所示 here。

我将其编译为 new.chm 并搜索所有必需的主题,但索引文件为空,如图 here。

我还检查了 index.hhk 文件,它也是空的,如图 here ..

我无法手动为 19k 文件添加关键字。我应该怎么做才能将所有 html 文件中的关键字添加到索引中,而我不会得到空索引? 感谢关注

简短的回答 - 没有自动方式

关键字是通过 Microsoft HTMLHelp Workshop 手动分配给主题的。请记住 - CHM 文件和 HTMLHelp Workshop 的技术开发已有 25 年历史。但不幸的是,即使在今天,Windows 也没有真正的替代方案。

您可能期望 Include keywords from HTML files 选项关键字(HTML 语法例如: <meta name="keywords" content="CSS, Script">) 自动集成。但是 CHM 的关键字在这里被认为是不同的和一些特殊的东西(例如 <meta Name="MS-HKWD" content="keyword">)。我不记得了,但也许当时 HTML 标签 keywords 不存在(25 年前)。

要知道,单字索引大家都很熟悉了,几乎从印刷开始就被用在了参考书和商业书的后面。但是为 HTML 帮助文件 (CHM) 创建良好的索引非常耗时并且需要大量工作。由于用户越来越多地使用CHM Viewer(或Google)的全文搜索,我现在很少创建复杂的索引。

(1) 您可能希望自己编写脚本来创建 index.hhk 文件,例如:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="generator" content="Microsoft&reg; 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) 您可以在以下位置找到包含更多详细信息的更多信息: