Как сделать help файл
Создание CHM с поиском и индексом
Думаю многие из вас сталкивались с такой проблемой. Заходишь на сайт — видишь кучу полезной информацию, но при этом на сайте не организован полноценной поиск, нет указателя, а пользоваться каждый раз гуглом, мягко говоря, напрягает.
Да и плюс ко всему хотелось бы иметь возможность иметь информацию под другой даже когда нет интернета.
Формат CHM известен практически всем. Легкий, удобный и функциональный. Работает, правда, официально он только в Windows. У этого формата есть очень большой плюс — после создания такого файла в будущем будет возможность его отредактировать.
Что нам нужно для создания полноценного (с поиском, указателем, содержанием) файла chm?
0. скачанная копия сайта (здесь рассматривать не будем — получить копию сайта можно множеством способов, например, воспользовавшись программами типа Teleport Pro, WebCopier).
1. htm2chm — позволяет удобно создавать файлы содержания и указателя (там есть компилятор, но без поиска)
2. Microsoft HTML Help WorkShop — сам компилятор, которым будем создавать chm-ки.
После установки htm2chm делаем интеграцию с оболочкой.
Далее пользуясь контекстным меня создаем файлы указателя (TOC.hhc) и содержание (Index.hhk).
С помощью редактора содержания htm2chm мы можем создать удобную древовидную структуру представления информацию.
Теперь нам осталось только создать файл проекта и откомпилировать проект в HTML Help WorkShop.
Опытным путем я создал несколько шаблонов для проектов.
1. Шаблон с содержанием и избранным, без указателя (кодировка — Win1251):
[OPTIONS]
Compatibility=1.1 or later
Compiled file=Project.chm
Contents file=TOC.hhc
Default Window=ProjectType
Default topic=Index.htm
Display compile progress=No
Full-text search=Yes
Language=0x419 Русский
[WINDOWS]
ProjectType=». «,«TOC.hhc»,,«Index.htm»,«Index.htm». 0x63520,,0x184e. 0
здесь:
Project.chm — имя файла на выходе.
Index.htm — начальная/домашняя страница для файла помощи
Все необходимые файлы для компиляции подхватятся из файла содержания (TOC.hhc).
2. Шаблон с содержанием и указателем, а также кнопкой изменения шрифта:
[OPTIONS]
Compatibility=1.1 or later
Compiled file=Project.chm
Default Window=WindowType
Default topic=Index.htm
Display compile progress=No
Full-text search=Yes
Language=0x419 Русский
[WINDOWS]
WindowType=». «,«TOC.hhc»,«Index.hhk»,«Index.htm»,«Index.htm». 0x60520,250,0x10184e,[10,10,700,500],,0x200,1. 0
3. Шаблон с содержанием и указателем, а также кнопкой изменения шрифта и доп. кнопкой («About»):
[OPTIONS]
Compatibility=1.1 or later
Compiled file=Project.chm
Default Window=WindowType
Default topic=Index.htm
Display compile progress=No
Full-text search=Yes
Language=0x419 Русский
[WINDOWS]
WindowType=». «,«TOC.hhc»,«Index.hhk»,«Index.htm»,«Index.htm». «About.htm»,«About»,0x60520,250,0x18184e,[10,10,700,500],,0x200,1. 0
здесь:
About — название кнопки
About.htm — файл, на который ссылается кнопка
Если внимательно посмотреть файл TOC.hhc, то можно заметить, что это обычный xml-файл, в котором идет перечисление параметров, а также настройки отображения файла помощи.
Вот про эти настройки и поговорим.
Можно увидеть примерно вот такие строки:
PARAM name=«Window Styles» value=«0x800627»
PARAM name=«ImageType» value=«Folder»
PARAM name=«ExWindow Styles» value=«0x2200»
Значение для Window Styles имеет 16-ричный формат. Вот расшифровка:
PARAM name=«Window Styles» value=«0xb0daec»
где:
c:
бит 1 — Plus/Minus squares | Квадраты плюса/минуса
бит 2 — Draw lines between items | Рисовать линии между элементами
бит 4 — Start line from the root | Начинать линию из корневого элемента
e:
бит 2 — Show selection when focus lost | Показывать выбор при потере фокуса
Лучше ставить — иначе при комбинации Скрыть/Показать текущий топик показываться не будет.
a:
бит 4 — Only expand a single heading | Разворачивать только одиночный заголовок
Т.е. автоматическое разворачивание заголовков, имеющих разделы, при выборе.
бит 2 — Automatically track selection | Автоматически подчеркивать элемент
бит 1 — Ставит чекбоксы (но зачем?)…
d:
бит 1 — Select entire row | Выделение полной строки (полезная штука)
только если не выбран стиль Draw lines between items
b:
бит 8 — Border | Рамка (имеет смысл только для Dialog Frame)
бит 4 — Dialog Frame | Диалоговая рамка
Итого для 0x800627 имеем:
8 — (Border)
6 — 4+2 (Only expand a single heading, Automatically track selection)
2 — (Show selection when focus lost )
7 — 4+2+1 (Plus/Minus squares, Draw lines between items, Start line from the root)
Дополнительно:
Right-to-left reading order | Порядок чтения справа налево
(чистый бит)
param name=«ExWindow Styles» value=«0x2200»
Raised edge | Рельефный край (разницы вместе с ним не видно)
(чистый бит)
param name=«ExWindow Styles» value=«0x100»
Scroll bar on left side | Полоса прокрутки на левой стороне
(чистый бит)
param name=«ExWindow Styles» value=«0x4200»
PARAM name=«ImageType» value=«Folder»
Если этот параметр указан, то значки представляются в виде файлов.
На этом описание окончано. Для компиляции используем:
«%PROGRAMFILES%\HTML Help Workshop\hhc.exe»
Compile time: 0 minutes, 3 seconds
70 Topics
5,168 Local links
74 Internet links
34 Graphics
PS. Для декомпиляции можно использоваться множество средств, лично я использую примочку для FAR manager — CHMView.
Как создать CHM файл (HTM2CHM и HTML Help Workshop в действии)
Несколько человек интересовались процессом создания моего учебника по автоматической установке Windows в формате CHM, а в двух словах это не описать. Изложенное ниже руководство применимо к созданию любого CHM файла, обладающего древовидной структурой отображения страниц в содержании, индексом, полнотекстовым поиском с поддержкой логических операторов и возможностью добавления страниц в избранное. Рассказ отражает мой личный опыт, и не исключено, что есть более простой путь (особенно при использовании специализированных и недешевых программных продуктов). Предполагается, что все HTML страницы, которые вы хотите включить в CHM уже подготовлены: в них работают все внутренние ссылки и отображаются картинки и прочие объекты. Речь в рассказе пойдет в основном о создании и компиляции CHM файла.
Давид и Голиаф (HTM2CHM и HTML Help Workshop)
Компиляция
После того как файл содержания готов, можно переходить к компиляции CHM файла. В главном окне программы жмем большую кнопку Создать.
И заполняем все поля, не забывая про только что созданный файл содержания. Через несколько секунд у вас будет готовый CHM файл.
К сожалению, HTM2CHM не обладает возможностью создания полнотекстового поиска (или я не нашел такой опции), так что покончив с Содержанием, я продолжил работу над CHM файлом в HTML Help Workshop, в котором мне также открылись и другие возможности.
Голиаф (HTML Help Workshop) 
Создание нового проекта
Так победил ли Давид Голиафа?
Все зависит от поля боя 🙂 Я вот наоборот пытался их подружить. И в связке эти две программы неплохо сработали. Другое дело, что сгенерировав содержание в HTM2CHM, я больше к ней не возвращался, а продолжаю редактировать проект в HTML Help Workshop, но на то у меня были свои причины.
А вообще, создание CHM файла не такая уж и сложная задача. Простой CHM файл можно создать при помощи HTM2CHM за три-четыре минуты. Потом можно потратить еще час на доводку, если редактировать меню и баловаться иконками страниц. HTML Help Workshop займет побольше времени, особенно на начальном этапе. Однако разобравшись с настройками и меню, вы будете тратить совсем немного времени на создание более функциональных и компактных файлов.
Если у вас есть на примете другие бесплатные (и удобные) инструменты для создания CHM файлов, то я буду признателен за ссылки на сайты программ.
HELP. Чем, как и для чего писать Help файлы (Вяткин Константин)
Константин Вяткин
26.11.2000
Недавно один мой знакомый принес свою программу. Принес, по его словам, «уже готовую». И действительно, InstallShield, англоязычный интерфейс и прочие вещи намекали на полную готовность к выходу в люди. Поигравшись несколько минут с окошками, я нажал F1 — реакции не последовало… Увидев мой недоумевающий взгляд, приятель быстро сориентировался и изрек: «А хелпа нету! Зачем он здесь нужен — у меня же интуитивно понятный интерфейс, понимаешь!»
Справочная система — это, пожалуй, та грань, которая отделяет «поделку для друзей» от программы, предназначенной для публичного распространения. Широко распространенная шутка по поводу того, что какая-то программа работает только в присутствии программиста, ее написавшего, берет свое начало от нелюбви разработчиков к написанию грамотной, полезной и удобной документации для своих творений. Пользователи обычно гораздо менее сообразительны и образованны, чем вы предполагаете. Более того, если программа ориентирована на российский рынок, помните, что в большинстве случаев наши люди хелпов не читают (причем не читают даже перед тем, как обратиться к автору программы с вопросом — в отличие от большинства иностранцев), и лишь немногие из пользователей отважатся прочитать первую страницу вашего литературного творчества. Но, тем не менее, help программе в любом случае нужен — вопрос только, в каком виде?
Какие бывают хелпы
Перефразируя известную народную мудрость, можно сказать, что иной программе и readme.txt — хелп. А некоторым программам не обойтись без 26 томов печатной документации. Полноценные руководства пользователя для shareware-продуктов
— явление довольно редкое, а уж печатная документация — вещь вообще невиданная (а
если она и есть, то, как правило, продается за деньги, сравнимые со стоимостью самой
программы). И потому тем более стоит проявить во всей красе литературные таланты
и любовь к потенциальному пользователю, создавая online help. Ведь и от него зависит
рейтинг, количество звездочек и «коров», которые будет носить ваша программа на
различных shareware-серверах. Кстати, о литературных талантах: люди, профессионально
занимающиеся созданием документации к программам (technical writer) — явление на
компьютерном рынке достаточно редкое, дефицитное и потому высокооплачиваемое — так
что есть шанс, что тренировка не пройдет даром.
Как я уже сказал, хелп может иметь самый различный вид — от обыкновенного
текстового файла или стандартного долгожителя WinHelp до профессионально сверстанного
файла в формате PDF (как, например, в программе Adobe Acrobat Reader). И уж самый
последний писк моды нашего Интернет-века — это HTML Help.
Продукт под таким названием разработан компанией Microsoft, а
его аналоги-конкуренты, использующие в качестве формата представления информации
HTML, носят собственные названия: это прежде всего NetHelp от компании Netscape,
WebHelp от Oracle и, наконец, JavaHelp от Sun (к сожалению, война браузеров не прошла
мимо форматов справочной системы).
Осмелюсь дать совет: если вы сегодня собираетесь создавать хелп
к своей программе, выбирайте HTML Help от Microsoft. Тому есть множество причин:
по сравнению с традиционными форматами справки, новый HTML Help предоставляет автору
гораздо больше средств для достижения целей, ранее труднодостижимых, и при этом
почти не требует дополнительных знаний. HTML Help на сегодняшний день — это наиболее
завершенное решение изо всех существующих HTML-хелпов, и он уже поставляется в составе
Windows 98 и Windows 2000. Немаловажно для shareware и то, что HTML Help от Microsoft
(при правильном его использовании) производит неизгладимое впечатление на обозревателей
различных shareware-серверов — для примера скажу, что review моей программы на сервере
ZDNet состояло из десяти строчек, три из которых являлись комплиментами и восхищенными
словами в адрес HTML Help (и еще три были посвящены поруганию многочисленных грамматических
и орфографических ошибок в английском языке, на котором этот самый хелп был написан).
За работу!
В случае текстового файла или справки в формате WinHelp понадобится
всего лишь Microsoft Word (кстати, лучше Word 95, потому что для использования в
этих целях Word 97 вам понадобится скачать с сервера Microsoft дополнительную программку
rtffix) и компилятор Help Workshop. Если захотите воспользоваться специализированными
средствами для создания WinHelp’ов — к вашим услугам огромнейший арсенал программ.
Одной из лучших программ для создания «традиционных» справочных систем является
shareware-программа российской фирмы
Anet Software. AnetHelpTool
позволяет редактировать файлы справки в двух режимах — Runtime и Design. В первом
режиме можно просматривать документ практически в том же виде, как он будет выглядеть
в WinHelp после компиляции, а во втором — редактировать текст и графику. Интерфейс
у этой программы довольно удобный, что позволяет сделать все легко и быстро. К сожалению,
насколько мне известно, пока существует версия AnetHelpTool только для Windows 3.x.
Создание справочной системы в формате hlp — не совсем тривиальная
задача, поэтому если вы все-таки прислушаетесь к моему совету и решите делать хелп
в формате HTML, тем самым здорово облегчите себе жизнь. Для этого необходима какая-нибудь
программка для редактирования HTML (Notepad, Microsoft FrontPage, Homesite, etc.)
и компилятор HTML Help (например бесплатный
HTML Help Workshop от Microsoft).
Разумеется, авторы специализированных программ для создания хелпов
и в этом случае о вас не забыли: большинство популярных пакетов уже выпущено в версиях
для HTML (например, продукты компании
ForeFront и
Blue Sky).
Особенно хочется отметить ForeHelp от ForeFront. Эта программа
позволяет не задумываться о том, в каком формате вы хотите создать свою справочную
систему… до самого этапа компиляции. То есть вы можете написать текст и лишь после
этого выбрать вид, в котором он предстанет перед пользователем (поддерживаются форматы
WinHelp 3.1, WInHelp 95, HTML/Microsoft, HTML/Netscape, стандартный HTML 3.2 и даже
просто создание печатной документации). Кроме того, из всех подобных программ именно
эта мне понравилась гораздо больше остальных. Богатейший набор функций и при этом
абсолютная легкость доступа ко всем параметрам будущей справочной системы объединены
в настолько хорошо продуманном интерфейсе, что складывается ощущение роста функциональности
программы по мере роста ваших потребностей. Дополнительно: макроредактор, редактор
ключевых слов и «связанных» тем (related topics), topic gallery и удобная работа
с изображениями — одним словом, рекомендую!
Для полного набора, пожалуй, понадобится еще и «What’s This?
Help Composer» от уже упомянутой компании Blue Sky Software. Эта программа делает
легкой и простой нудную задачу создания контекстной справки. Если у вас есть готовый
exe-файл, ActiveX-элемент или проект на Visual Basic, то с помощью этой программы
вы сможете автоматически создать ко всем диалогам шаблон контекстной справки. Не
надо больше придумывать разные ID_, долго и пытливо просматривать все диалоги и
делать прочие совсем не интересные вещи. Все сделано так просто и изящно, что после
мытарств с «ручным» выполнением той же самой работы хочется заплакать от удовольствия!
Пять звездочек ZDNet Software Library, видимо, просто так не дают…
Что писать?
Не забывайте, что хелп пишется для пользователей, и пишите его
языком этих самых пользователей. Хелп — это не техническое описание программы: в
большинстве случаев пользователя мало волнует, что «данный элемент является контролом
типа CEdit, и потому ему присущи все ограничения данного типа контрольных элементов»
(реальный пример из одной программы, не имеющей никакого отношения к программированию).
Кроме того, неплохо помнить, что в справку обычно заглядывают не от хорошей жизни,
а когда понадобится найти ответ на какой-то конкретный вопрос.
Прежде всего вам нужно определить структуру будущей справочной
системы. Для любой shareware-программы жизненно необходимы разделы типа «How to
order», «Description» или «Introduction», «Our site», «Technical support». Весьма
разумно выделить эти четыре раздела в отдельную секцию.
Вообще, для текста и содержания справочных систем характерны
два подхода: либо вы рассказываете для чего что-то предназначено, либо о том, как
что-то сделать (wanting to know vs. wanting to do). Оба этих подхода имеют право
на жизнь, и какой из них выбрать — решать вам. Решать, естественно, не от фонаря,
а исходя из тех вопросов, которые задают пользователи на стадии, когда хелпа еще
нет (а обычно, пока программа существует в виде первых бета-версий, его и не бывает).
В конце концов, грамотно написанный хелп избавит вас от кучи дополнительных вопросов
тех же самых пользователей.
Одной из самых широко распространенных ошибок при создании справочной
системы является злоупотребление длинными и подробнейшими объяснениями, превращающими
хелп в некое подобие научного трактата. Оставьте подробные объяснение для печатной
документации (которой, скорее всего, у вас не будет), а в хелпе быстро и точно помогите
пользователю найти ответ на волнующий его вопрос.
Надо сказать, что справочная система — это не только некий абстрактный
файл справки, но еще и контекстная система помощи. Обычно пользователи довольно
неохотно берутся запускать первый пункт из меню Help (потому что в этом случае им
придется искать и разбираться в справке), но вполне готовы нажать F1 на каком-то
пункте меню или воспользоваться вопросиком «What’s This?» в диалогах — так что именно
разработке системы контекстной помощи следует уделить наибольшее внимание. А это,
вообще говоря, не совсем тривиальная задача, над которой придется подумать не меньше,
чем над проектированием любой другой части интерфейса программы.
Наконец, нельзя не затронуть такую весьма болезненную для большинства
отечественных шареварщиков тему, как перевод системы помощи на английский язык.
Разумеется, лучше, если ваш английский будет понятен людям, на нем разговаривающим.
Найти знакомого, который за некоторую сумму (а то и бесплатно) переведет ваш хелп
на некий «промежуточный» вариант английского языка, нетрудно, но мой вам совет:
не пожалейте бесплатной регистрации, найдите англичанина или американца, который
доведет качество перевода до хорошего уровня. И уж ни в коем случае не представляйте
свое творение на суд обозревателей
ZDNet, пока не будете уверены
в отсутствии грамматических и стилистических ошибок. По собственному опыту знаю
— плохой английский язык перевесит для ZDNet все достоинства вашей программы. Им
будет совершенно не важно, что вы из России, когда они напишут о вашей программе
что-то типа: «There is an attractive HTML style hyperlinked help document, but the
spelling and grammar errors detract from its usefulness».
Самая ненужная часть вашей программы
Так случилось, что с момента написания первых строк этой статьи
до ее завершения прошло довольно много времени. За это время мой приятель, о котором
я упомянул вначале, успел написать хелп к своей программе и вчера приходил ко мне
показывать свой шедевр во второй раз. Как изменились акценты за прошедшее время!
Теперь он уже всячески просил меня нажимать во всех диалогах на значок контекстной
справки и просматривать ее чуть ли не ко всем элементам программы! Самое печальное,
что, поработав с его программой почти целый день, я пришел к выводу, что без справки
ее использовать просто невозможно… И это подтолкнуло меня к совершенно неожиданному
заключению.
Есть две вещи, которые, безусловно, необходимы любой профессиональной
программе. Во-первых, такая справочная система, которая позволяет легко и быстро
разобраться во всех возможностях вашей программы. И во-вторых, такой интерфейс,
который позволит пользователю никогда не задумываться о том, есть ли у вашей программы
хелп.
Успехов!
- фонарь передний ваз 21214 нива нового образца
- если мужчина говорит что я его бешу