HTML Help Workshop


Файл проекта hhp

Крупный проект hhp

Здесь присутствует панель инструментов, вкладки "Содержание", "Указатель", "Поиск", Избранное".


[OPTIONS]
Compatibility=1.1 or later
Compiled file=Project.chm
Contents file=TOC.hhc
Default Window=Help Window
Default topic=html\index.htm
Display compile progress=Yes
Enhanced decompilation=Yes
Error log file=_errorlog.txt
Full-text search=Yes
Index file=Index.hhk
Language=0x419
Title=Заголовок окна справки

[WINDOWS]
Help Window="Заголовок окна справки","TOC.hhc","Index.hhk","html\index.htm",,,,,,0x63520,,0x10000c,[0,0,1024,768],0x80000,,,,,,0

[FILES]
Project.hhp



Как видно hhp-файл похож на обычный ini-файл, в котором можно не прибегая к настройкам в окне программы просто изменить ключевые настройки для проекта, например заголовок окна, оставив всё остальное без изменений, при условии, что новый проект содержит одинаковую структуру. Если же приходится править уже созданный проект с иной структурой, то легко можно задать имя файла TOC.hhc, Index.hhk, Project.chm, путь к стартовому файлу (в данном случае "html\index.htm"). В секции [WINDOWS] имена файлов дублируются, поэтому нужно в 2-х местах это исправлять. Также в параметрах секции [WINDOWS] можно увидеть начальный размер окна справки (1024,768). В шестнадцатеричных числах 0x63520, 0x10000c, 0x80000 битовыми флагами (1, 2, 4, 8 и т.д.) определены настройки и стили окна. Имя окна "Default Window=Help Window" это параметр в секции [WINDOWS]

Секция [FILES] в неё можно добавить файлы, которые не попадают в проект обычным способом. При компиляции программа сама анализирует все ссылки на файлы и добавляет их в проект (из TOC.hhc, ссылки из HTML-файлов указанных в TOC.hhc). То есть файл "Project.hhp" по умолчанию не попадёт в результирующий файл "Project.chm". Но если необходимо, чтобы у пользователей была возможность легко пересобрать файл CHM, то можно добавить настройки проекта в сам CHM-файл. При этом пользователь может извлечь CHM-файл с помощью 7-zip и используя файл проекта одним кликом собрать заново.

Компактный проект hhp

Пример проекта без навигационной панели, без вкладок "Указатель", "Поиск", Избранное", только дерево и веб-окно. Полезно для компактных справок с несколькими страницами в дереве.

[OPTIONS]
Compatibility=1.1 or later
Compiled file=Project2.chm
Contents file=TOC.hhc
Default Window=Main
Default topic=html\index.htm
Display compile progress=Yes
Enhanced decompilation=Yes
Error log file=_errorlog.txt
Language=0x419
Title=Заголовок окна справки

[WINDOWS]
Main="Заголовок окна справки","TOC.hhc",,,,,,,,0x42120,,0x0,[0,0,1024,768],,,,,,,0

[FILES]
Project2.hhp

Проект hhp с одной страницей

Этот проект открывает веб-страницу на всю область окна (нет дерева).

[OPTIONS]
Binary Index=No
Compatibility=1.1 or later
Compiled file=Project3.chm
Default Window=Help Window
Default topic=file.htm
Display compile progress=Yes
Enhanced decompilation=Yes
Error log file=_errorlog.txt
Language=0x419
Title=Одна страница

[WINDOWS]
Help Window="Одна страница",,,"file.htm",,,,,,0x42020,,0x0,[0,0,1024,768],0x80000,,,,,,0

[FILES]
Project3.hhp



Как вариант можно создать hta-файл (суть html-файл), который будет иметь полноценное веб-окно без запуска браузера. Необходимо в обычную веб-страницу добавить внутрь тега <head> </head> следующий блок текста, и переименовать расширение файла в hta.

<HTA:APPLICATION
    ID="oHTA"
    applicationName="MS-DOS"
    innerBorder="no"
    BorderStyle="static"
    caption="yes"
    icon=".\hta.ico"
    windowState="normal"
    maximizeButton="yes"
    minimizeButton="yes"
    ShowInTaskbar="yes"
    scrollFlat="yes"
    SingleInstance="yes"
    sysMenu="yes"
    maximize="1.0"
>

В данном примере есть внешний файл значка icon=".\hta.ico" для отображения его в заголовке.

Преобразование WinHelp (HLP) в HTMLHelp (CHM)

Также в файле проекта можно увидеть секции [ALIAS] и [MAP]. В программах можно было по ID перейти к тексту справки HLP. Чтобы это заменить на CHM без рутинной работы сделан метод преобразования, связь идентификатора со страницей.

[ALIAS]
IDH_History=ms-its:Help.chm::/html/index.htm
IDH_History1=/html/index.htm

[MAP]
#define IDH_History 1000
#define IDH_History1 1001

Интернет ресурсы

Описание hhp-файла проекта (англ. яз.)
Описание hhp-файла проекта на не официальной справке по CHM (англ. яз.)