ключевые слова в чм ххк - PullRequest
0 голосов
/ 01 ноября 2018

В настоящее время я смотрю, исследуя создание двоичного индекса для CHM, но я заметил, что некоторые hhk из примеров проектов (например, сгенерированный Sphinx) имеют тег "ключевое слово", который, как кажется, не документирован в chmspec . Однако chmspec намекает на то, что ключевое слово существует.

Является ли тег "ключевое слово" в этом контексте просто псевдонимом для тега (First?) "Name"?

Например, ags (https://github.com/adventuregamestudio/ags-manual/issues/14) У их chmfiles действительно есть 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 голосов
/ 03 ноября 2018

Короткая история - я не знаю точно, почему 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" раньше. После некоторых поисков моя память вернулась.

Если вы преобразуете проект WinHelp в HTMLHelp с помощью HTMLHelp Workshop (HHW), вы получите эти атрибуты, сгенерированные в индексе (я снова попробовал этот старый материал).

<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) показано диалоговое окно редактора индекса после нормализации. Только ключевые слова, например, например «Бодро», назначенный на две темы, теперь имеет красную звезду. До нормализации все ключевые слова имели красную звездочку.

Screenshot of editing my *.hhk file

При редактировании файлов HHK, отредактированных HHW (как упоминалось выше), вы можете увидеть много отдельных папок с одним всплывающим элементом. Их можно уменьшить и упростить до одной не всплывающей записи. Единственная причина, по которой вы хотите сохранить эту дублирующую информацию, заключается в том, что вы используете информационные типы - функцию HTMLHelp 1.x, которая так или иначе никогда не выполнялась должным образом. Рекомендуется всегда нормализовать индексы HHK, если у вас есть такая возможность. Это уменьшает размер и сложность файла без видимых изменений для пользователя во время выполнения.

Я пытался найти какую-то документацию в книге 1997 г. «Официальный Microsoft HTMLHelp Authoring Kit», но ничего не нашел.

Дополнительная информация:

встроенные ключевые слова HTML

В проекте HTMLHelp ключевые слова для индекса можно интегрировать как мета-операторы в разделе с помощью недокументированной функции. Ключевые слова, указанные таким образом, включаются в индекс в скомпилированной справочной системе.

См .: http://www.help -info.de / ru / KIT / Create_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

...