我目前正在寻找针对CHM的二进制索引构建,但是我注意到示例项目中的某些hhk(例如,生成的Sphinx)具有似乎未在chmspec中记录的“关键字”标记。 chmspec确实暗示该关键字存在。
在这种情况下,“关键字”标签仅仅是(First?)“名称”标签的别名吗?
例如ags(https://github.com/adventuregamestudio/ags-manual/issues/14)的chm文件中确实包含hhks。
LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="Functions that return a value">
<param name="See Also" value="Functions that return a value">
</OBJECT>
<UL> <LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="Scripting Tutorial">
<param name="Local" value="ScriptingTutorialPart1.html#index-7">
</OBJECT>
</UL><LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="Game / Global functions">
<param name="Local" value="Game.html#index-0">
</OBJECT>
<UL> <LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="AbortGame">
<param name="Local" value="Game.html#index-1"> ...
答案 0 :(得分:1)
简短的故事-我不确切知道为什么name="Keyword"
使用name="Name"
。似乎两个属性都可用,但这没有记录。我倾向于name="Keyword"
,但是现在我使用name="Name"
。
您知道-为HTMLHelp文件(CHM)创建良好的索引非常耗时,并且需要大量工作。由于用户越来越多地使用全文搜索(或Google),因此我很少创建复杂的索引。我正在将以下语法(站点地图摘要)与属性name="Name"
一起使用:
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Flowers">
<param name="Local" value="Garden/flowers.htm">
</OBJECT>
已经有很长时间了,但是我记得以前见过属性name="Keyword"
。经过一番搜索,我的记忆又回来了。
如果使用HTMLHelp Workshop(HHW)将WinHelp项目转换为HTMLHelp,则会在索引中生成这些属性(我再次尝试了这些旧内容)。
<LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="Adresse">
<param name="Name" value="RS485-Bus durchsuchen">
<param name="Local" value="html/sens04xe.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Keyword" value="Baudrate">
<param name="Name" value="Konfiguration der PC-Schnittstelle">
<param name="Local" value="html/sens04xd.htm">
<param name="Name" value="RS485-Interface des Transmitters">
<param name="Local" value="html/sens04xh.htm">
</OBJECT>
使用HHW进行索引时,重复的节点信息也经常发生。当然,在这种情况下,我使用的是FAR HTML的功能自动归一化HHK文件,结果是:
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Adresse">
<param name="Local" value="html/sens04xe.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Baudrate">
<param name="Name" value="Konfiguration der PC-Schnittstelle">
<param name="Local" value="html/sens04xd.htm">
<param name="Name" value="RS485-Interface des Transmitters">
<param name="Local" value="html/sens04xh.htm">
</OBJECT>
两个* .hhk变体均被编译成CHM,没有错误。用户看不到任何区别。屏幕截图(FAR HTML GUI)下面显示了规范化后的索引编辑器对话框。仅关键字,例如分配给两个主题的“ Baudraute”现在有了一颗红星。在归一化之前,所有关键字都有一个红色的星星。
在编辑由HHW编辑的HHK文件时(如上所述),您可能会看到许多带有单个弹出项目的单个文件夹。这些可以减少和简化为单个非弹出条目。您要保留此重复信息的唯一原因是,如果您使用信息类型-一种始终无法正确完成的HTMLHelp 1.x功能。如果有机会,建议您始终对HHK指数进行归一化处理。它减少了文件的大小和复杂性,并且在运行时对用户没有可见的变化。
我试图在1997年出版的《 Microsoft HTMLHelp Authoring Kit官方》一书中找到一些文档,但未找到任何内容。
其他信息:
HTML内置关键字
在HTMLHelp项目中,可以使用未记录的函数将索引的关键字集成为
节中的meta语句。以这种方式指定的关键字包含在已编译的帮助系统的索引中。请参阅:http://www.help-info.de/en/KIT/Creating_Index/create_index.htm#UndocumentedIndex
<html>
<head>
<title>How one grows trees </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="keywords" content="tree, hole">
<meta name="MS-HKWD" content="oak">
<meta name="MS-HKWD" content="beech">
<meta name="MS-HKWD" content="water">
<meta name="MS-HAID" content="botany">
<link href="../design.css" rel="stylesheet" type="text/css" />
</head>
构建器的Sphinx源代码HTMLHelp
似乎name="Keyword"
在这里需要硬编码(对于name="Name"
情况,我不会做进一步的介绍):
https://github.com/sphinx-doc/sphinx/blob/master/sphinx/builders/htmlhelp.py