香港中文大学的关键词标签

时间:2018-10-31 21:02:55

标签: chm chmcmd

我目前正在寻找针对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"> ...

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”现在有了一颗红星。在归一化之前,所有关键字都有一个红色的星星。

Screenshot of editing my *.hhk file

在编辑由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