Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

СОВРЕМЕННАЯ ПОМОЩЬ - HTML-help и с чем ее едят

Kirion (kkr@mailru.com)

Спецвыпуск Xakep, номер #028, стр. 028-094-1


Вначале хочу принести извинения всем тем, кто писал на winfo.org и не получил ответа. К сожалению, наш сайт (а с ним и мыльники) стал невинной жертвой войны с порнобизнесом :). Наверное, мы его восстановим, но это в компетенции Дронича. А пока что могу предложить только его скромную архивную копию, хранящуюся на моем винте вместе с десятками других страничек. Правда ведь, неудобно хранить их в таком виде: очень проблематично что-либо найти, да и места занимает немало. Но у меня таких проблем нет - я храню странички в формате HTML-help, также известном как "Chm".

Це шо? - Це хм!

Наверняка ты хоть раз в жизни читал файлы справки (не читал!? А, ну да, конечно: мануалы читают только ламеры :)). И наверняка видел, что они бывают двух разных типов: с расширением "hlp" и с расширением "chm". Файлы "hlp" - это файлы Winhelp, старого формата справки от MS, а "chm" - это файлы HTML-help, нового формата справки. В настоящее время Winhelp применяется все реже и реже и вот почему: файлы Winhelp создаются на основе файлов "rtf" с особой разметкой, набивать которые тебе придется в ворде. Все изображения должны быть в "bmp", что отрицательно сказывается на размере. HTML-help создается на основе html-файлов (логично, правда :)), средств для создания которых - полно. Да и не надо запоминать еще один язык разметки. Все изображения сжимаются в "jpg", "gif" или "png". Кроме того, тебе доступны вся мощь Javascript и также некоторые объекты ActiveX. Ну и самое главное - компилятор достаточно сильно сжимает исходные html-ки, а вытащить их назад не составляет особого труда. Можно просто декомпилятор использовать, а можно открыть в ослике и сохранить отдельно (урл будет вроде помощь.chm://файл.htm). Правда, есть некоторые ограничения: у тебя обязательно должен стоять ослик хотя бы четвертой версии (неужели еще есть люди с 95 виндами?). А еще должна стоять свежая версия файлика Hh.exe, отвечающего за правильное отображения файлов справки. Апдейт качается с download.microsoft.com, весит около 700 кило. С него же можешь скачать HTML Help Workshop, кстати, она часто входит в поставку средств разработки программ (например, Visual studio), кроме продуктов Borland. Они поставляют с Delphi старенький Help workshop для создания Winhelp-файлов. Вместе с Workshop идет дополнительная тулза - Image Editor. Вряд ли он тебе пригодится, ибо скрины можно снимать и другими средствами (Hypersnap, например), равно как и подгонять изображения. Кстати, к хелпу прилагается достаточно подробное руководство по тегам и css, если нет проблем с английским - советую сохранить где-нибудь (после установки Workshop он будет валяться в "windir"\help\htmlref.chm).

Основы

Итак, запускай Workshop и кликай по File|New. Тебе предложат выбрать, что создавать: проект, html-файл, текстовый файл, содержание (aka table of contents, TOC) или индекс. Предполагаю, что html-ки и текстовики ты можешь набить и в других местах, а содержание и индекс нас пока не интересуют - проекта-то еще нет. Смело выбираем первый пункт. Есть возможность конвертировать проект Winhelp-справки, если где вдруг завалялся (что-то сомневаюсь). Далее: имя файла и путь, а потом уже имеющиеся файлы для проекта. Содержания и индекса у нас еще нет, а вот html-ок - полно. Дави "Add" и добавляй их в проект. Итак, проект создан. Первым делом лезем в опции проекта (двойной клик на разделе options или самая верхняя кнопка в левом ряду). На вкладке "General" задаем язык проекта (русский, я полагаю), начальную страницу файла, параметры шрифта. На вкладке "Files" задаем путь к скомпилированному файлу справки, логам, файлу содержания, файлу индекса и стоп-листу. Стоп-лист - это файл со списком слов, по которым не будет выполняться поиск. Удобно один раз создать такой файл и забить туда разные местоимения, союзы, предлоги и прочее, чтобы потом использовать во всех проектах. Здесь же можно задать автоматическую генерацию содержания, но я не советую ее использовать: результаты, прямо скажем, не очень. Названия разделов будут браться из заголовков страниц. А вот по какому принципу будут создаваться подразделы - это я так и не понял, и в мануале этого нет :(. Лучше уж потрать пять минут на создание содержания, не так уж и сложно создать его самому. На закладке "Compiler" не забудь поставить галку на "compile full-text search information", а то у тебя не будет поиска в готовом файле. Если будешь создавать индекс - лучше делай его двоичным (ставь галку "create binary index") - это уменьшает размер файла. Ну а если у тебя уже есть откомпилированный файл справки и ты хочешь объединить его с твоим - задай путь на закладке "merge files". Неплохо было бы настроить внешний вид твоего творения, добавить кнопок или задать размеры. Для этого кликаем на третью сверху кнопу и попадаем в "Add/modify window definition". Тебя попросят задать имя твоего нового типа окна. Далее ты сможешь задать заголовок окна, кнопки (стандартные кнопки ослика, "вперед", "назад", "домой" и т.д.), размер и позицию окна (особо не извращайся). Необходимо задать файлы для перехода по кнопкам и закладкам в "files", а то ничего не будет работать. В закладке "Navigation pane" задаем свойства навигационной панели (никогда бы не догадался :)) и будет ли она вообще. Остались две закладки со стилями, там настройки типа окна и наличия различных виндовых контроллов: кнопок, скролла, рамок и т.д. Ну, вроде все настроили. Теперь такое окно будет отображаться в списке "windows", и его можно будет использовать для вывода. Только не забывай прописывать его в свойствах вместо стандартного. А теперь будем создавать навигацию.

Содержание  Вперед на стр. 028-094-2