HTML Help Workshop - творение программистов Microsoft. В отличии от HTM2CHM, программа не очень интуитивно понятна и русского интерфейса у нее тоже нет (русификаторы есть). Из минусов: не умеет корректно сформировать файл содержания (ТОК) из кириллических заголовков страниц. Но в отличии от HTM2CHM, у HTML Help Workshop получился намного более компактный файл (у HTM2CHM размер выходного файла оказался в 1.5 раза больше).
За неказистым (и иногда не очень удобным) интерфейсом HTML Help Workshop скрывается очень мощный инструмент создания CHM файлов. Функционально HTML Help Workshop превосходит HTM2CHM. Я опишу лишь те функции программы, которые использовал сам. Вообще, HTML Help Workshop снабжен достаточно подробной справкой (EN).
Создание нового проектаПервое что нужно сделать - это создать новый проект (Файл | Новый).
Выбираем Проект и нам открывается мастер создания проекта.
На первом этапе предлагается конвертировать существующий WinHelp проект. Поскольку мы ничего не конвертируем, то флажок ставить не надо.
Указываем имя файла проекта (*.HHP) и папку, в которой он будет сохранен.
На этом этапе можно указать HTML файлы, которые мы включаем в проект, а также файл содержания и индекса (HHK). Я указываю только HTML файлы, а TOC файл, созданный в HTM2CHM, добавляю потом.
Добавляем HTML файлы. И на этом работа мастера завершается.
По завершении работы мастера левая часть рабочего окна HTML Help Workshop выглядит примерно так.
Настройка внешнего вида
Займемся настройкой будущего CHM файла. На своем опыте я уяснил, что сначала лучше настроить внешний вид, а потом уже остальные свойства проекта. Итак, сначала определимся, какие закладки мы хотим видеть в навигационной панели (например, Содержание, Индекс, Поиск, Избранное), какие кнопки мы хотим видеть в верхней панели, настроим размер окна и т.д.
В вертикальной панели инструментов HTML Help Workshop есть ряд иконок - нас интересует третья сверху (Опеделение окна Добавить/Изменить).
Если это ваш первый щелчок на иконку, то появится такое диалоговое окно, в котором нужно напечатать Панель навигации.
Нам откроется окно Типы окна, в котором можно выставить немало настроек. На закладке Панель навигации нужно отметить следующее:
Окна с панелями навигации, разделов и кнопок - обязательно ставим флажок, чтобы навигационная панель отображалась в скомпилированном CHM файле. Поставив флажок, мы видим остальные опции.
Вкладки - закладки навигационной панели
Вкладки по умолчанию - активная закладка по умолчанию (при открытии файла)
Вкладка поиск и Расширенный поиск - закладка поиска и возможность расширенного поиска с использованием логических операторов
Вкладка избранного - закладка Избранное
Закладка Кнопки контролирует какие кнопки будут доступны на верхней панели скомпилированного файла. Выбор оставляю на ваше усмотрение.
Закладка Расположение позволяет задать размер окна и его расположение на экране. Рекомендую дать пользователю возможность автоматически запомнить размер и позицию после первого запуска CHM файла (Сохранить положение окна после первого запуска). Можете также поиграть с кнопкой Авторазмер.
На закладке Файлы указываем ряд важных файлов:
Тип окна - фокус по умолчанию при запуске (я выбираю Навигационную панель)
TOC - файл содержания. Здесь я указываю файл, который ранее создал в HTM2CHM (путь нужно указывать, если только TOC не в одной папке с файлом проекта)
Указатель - индексный файл (если вам нужен индекс - впишите туда index.hhk; о создании индекса я расскажу ниже)
По умолчанию - страница, отображаемая при открытии CHM файла
Домашняя - домашняя страница (кнопка Home на панели)
Остальные закладки диалогового окна Типы окна изучите самостоятельно.
Свойства проекта
Чтобы попасть в свойства проекта, в вертикальной панели инструментов - нас интересует первая сверху - делаем щелчок на слове Изменить опции пректа (в левой верхней части главного окна программы под закладкой Проект) и идем по закладкам по порядку. Может я не уловил логики программы, но мне показалось, что часть настроек дублируются. Т.е. ниже вы увидите некоторые настройки, которые мы уже установили, ковыряясь во внешнем виде.
На закладке Основные нас интересуют:
Заголовок - название CHM файла (отображается в заголовке окна скомпилированного файла)
Файл по умолчанию - страница (статья), которая отображается при открытии CHM файла
Окно по умолчанию - я выбираю Navigation Pane (навигационная панель с закладками в левой части CHM файла)
Язык - Русский (обязательно, если в Содержании кириллица)
На закладке Файл мы указываем следующие параметры:
Компилируемый файл - имя и расположение скомпилированного файла
Файл содержания - вот тут я и указываю TOC файл, созданный в HTM2CHM
Файл указателя - (если вам нужен индекс - впишите туда index.hhk; о создании индекса я расскажу ниже)
Включить ключевые слова из файла HTML - эта опция предполагает наличие заранее сформированных ключевых слов в HTML файлах для создания индекса. (см. раздел
Внесение ключевых слов в HTML код)
Файл списка для полнотекстового поиска - текстовый файл с расширением STP, содержащий слова, которые вы хотите исключить из полнотекстового поиска. (см. раздел
исключение из полнотекстового поиска).
Едем дальше - закладка
Компилятор. Здесь мы отмечаем лишь
Компилировать информацию поиска по всей справке (если, конечно, нужен полнотекстовый поиск).
На этом начальную настройку проекта можно считать завершенной. Теперь можно уже переходить к компиляции. Если вас интересует создание индекса и исключение слов из поиска, то читайте дальше.
Создание индекса
Добавить ключевые слова для индекса в каждую страницу можно через интерфейс HTML Help Workshop или вручную в каждую страницу. Я изложу оба способа.
1.Добавление ключевых слов через интерфейс Workshop
Через интерфейс программы ключевые слова добавляются на закладке
Указатель. Я обойдусь без скриншотов, так как там трудно промахнуться (окна будут фактически аналогичны тем, что приведены в рассказе о
редактировании проекта. Нажимаем на вторую сверху иконку с изображением ключа и получаем окно в котором нужно ввести ключевое слово и кнопкой
Добавить выбрать страницу, к которой слово будет относиться. Одно ключевое слово может относиться к нескольким страницам - просто добавляйте их все в том же окне. В итоге индекс будет сохранен в файл index.hhk, который несмотря на расширение является текстовым файлом, содержащим гипертекстовую разметку (HTML).
Я, однако, избрал другой способ, и теперь уже точно не помню почему. Если память мне не изменяет, кириллические ключевые слова, добавленные через GUI, впоследствии некорректно отображались в CHM файле. Так что прежде чем наполнять индекс тысячами слов проверьте как у него дела с кириллицей.
2.Внесение ключевых слов в HTML код
В код HTML страницы после тега BODY вносится следующий текст (приводится скриншот):
Непроизносимый набором символов лучше скопировать. Вообще, это одна строка, просто на скриншоте сделан перевод строки.
object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"
Очевидно, что можно указать несколько ключевых слов - они все будут указывать на статью, в текст которой они были внесены. В итоге я методом Search&Replace внес эту абракадабру во все страницы, а потом потихоньку добавлял ключевые слова.
Ни один из способов особо быстрым не назовешь. Так или иначе приходится назначать ключевые слова страницам вручную, и как это автоматизировать непонятно. Если вам известен более простой способ, то я буду рад о нем узнать.
3.Исключение слов из полнотекстового поиска
Исключить слова из полнотекстового поиска можно, поместив их в обычный текстовый файл (одно слово на строку) и сохранив файл с расширением STP. В виде исключений я использовал слова, которые часто упоминаются на страницах, но вряд ли нужны при поиске. Фрагмент файла:
Не скажу, что удалось сэкономить на размере файла таким образом. Используя список на 70 слов можно сэкономить 30 кб. Однако, для больших CHM файлов с длинным списком слов-исключений это вполне может иметь смысл.
Компиляция
Если у вас есть по крайней мере файл содержания и список страниц, можно попробовать запустить компиляцию и посмотреть, что получается. Делается это через меню
Файл | Компилировать... или по нажатию третьей кнопки слева на верхней панели инструментов.
Получаем предложение сохранить все файлы и показать скомпилированный файл по окончании компиляции. Через несколько секунд или минут (в зависимости от кол-ва материала и/или скорости компьютера) получаемый желаемый CHM файл. Смотрим что получилось. Если чего-то не хватает, проверяем настройки и компилируем снова.
Редактирование существующего проекта
Ну вот примерно такая картина наблюдается у меня на закладке
Содержание. Сразу видно, что файл содержания из HTM2CHM был принят как родной.
Слева панель инструментов, кнопки которой означают:
1.Свойства содержания
2.Добавить заголовок (секцию). Предварительно нужно выбрать страницу, после которой будет вставлен заголовок.
3.Добавить страницу. Предварительно нужно выбрать страницу, после которой вставляется новая.
4.Редактировать выбранную страницу или заголовок
5.Удалить выбранную страницу или заголовок
6.Перемещение страниц (перетаскивания нет)
7.Посмотреть исходный код HTML (и внести изменения)
8.Сохранить файл
Допустим, нам нужно добавить статью. Нажимаем на иконку с изображением вопросительного знака (3) и видим диалог добавления статьи.
Здесь все делается в таком порядке:
1.Название статьи
2.Добавить статью
3.Выбрать статью
4.Статья добавлена
На этом же скриншоте видна закладка
Расширенное, перейдя на которую можно назначить странице иконку. Однако, она недоступна в режиме создания новой статьи. А вот после создания - в режиме редактирования (кнопка с изображением карандаша (4)) иконку статье уже можно назначить.
Все изменения сохраняются в файле проекта с расширением HHP. По сути это текстовый файл в формате INI - его можно даже поправить руками (например, внести новые страницы в список). На этом Все!!!