代码之家  ›  专栏  ›  技术社区  ›  Marco van de Voort

chm hhk中的关键字标记

  •  1
  • Marco van de Voort  · 技术社区  · 6 年前

    chmspec . chmspec确实暗示了关键字的存在。

    这个上下文中的“keyword”标记只是(第一个?)“name”标记的别名吗?

    例如ags( https://github.com/adventuregamestudio/ags-manual/issues/14 )他们的chmk文件里面确实有这个。

    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 回复  |  直到 6 年前
        1
  •  1
  •   help-info.de Jesús Serrano    6 年前

    短篇小说-我不知道确切的原因 name="Keyword" 用于 name="Name" name=“关键字” 但现在我用 name=“姓名” .

    你知道-为HTMLHelp文件(CHM)创建一个好的索引是很费时的,而且需要大量的工作。由于用户越来越多地使用全文搜索(或Google),我很少创建复杂的索引。我使用以下语法(sitemap片段)和属性 name=“姓名” :

    <LI> <OBJECT type="text/sitemap">
        <param name="Name" value="Flowers">
        <param name="Local" value="Garden/flowers.htm">
        </OBJECT>
    

    这是很久以前的事了,但我记得我见过这个属性 name=“关键字” 以前。经过一番寻找,我的记忆又恢复了。

    <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索引。它减少了文件大小和复杂性,用户在运行时没有明显的变化。

    其他信息:

    在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=“关键字” 在这里被硬编码(我不想再深入了 name=“姓名” 案例):

    https://github.com/sphinx-doc/sphinx/blob/master/sphinx/builders/htmlhelp.py