Бытует мнение, что журналист — это несостоявшийся писатель, суть работы которого для немалой части нашего народонаселения состоит в том, что, гонимый вдохновением, этот самый писатель «ходит туда-сюда, туда-сюда — думает»1.

Интересно, что сказали бы в народе о профессии, известной лишь в узких кругах разработчиков программного обеспечения и носящей странное название «технический писатель»? Между тем с «творчеством» технических писателей компьютерный люд сталкивается регулярно, хоть изредка, но читая всевозможные «Справки» и «Руководства», коими снабжены практически все программные продукты. Правда, редкое руководство можно дочитать до конца, не рискуя впасть в глубокий сон, но к теме данной статьи это не относится.

Как бы там ни было, любая приличная компания —разработчик ПО имеет в своем штате человека, способного изложить материал о программе в краткой и доступной форме. Причем крайне желательно — грамотным русским языком, поскольку определенная часть программистов в свое время предпочитала делать акцент на изучении языков Си++ и Паскаль, игнорируя при этом элементарную грамматику «великого и могучего».

Ко всему прочему, технический писатель, которого зачастую именуют «хэлпером», смотрит на создаваемый программный продукт «незамыленным» глазом, в результате чего разработчик с трепетом узнает о своем детище массу интересных нюансов2. Хэлпер же, в свою очередь, с умилением выслушивает краткий, но весьма энергичный монолог программиста о видовой принадлежности техписателя.

Но все это, как вы понимаете, лирика. На деле же от технического писателя помимо само собой разумеющейся крепкой дружбы с ПК и наличия публикаций в периодике требуется знание весьма тонких технологий создания справочных файлов, в том числе HTML и PDF, умение работать с графическими редакторами и многое другое, включая сборку (компиляцию) созданного шедевра в один файл, который и будут читать по вечерам счастливые пользователи.

Но иногда жизнь складывается таким образом, что человек становится хэлпером, не имея ни малейшего понятия о том, как, собственно, делаются эти самые «хэлпы», наивно полагая, что справочные файлы пишутся на каком-то хитром языке программирования. Ушлые разработчики, смекнув, что на этом можно неплохо заработать, стали выпускать программы, которые берут на себя львиную долю рутинной работы. Вот об этих приложениях и пойдет речь ниже. Но для начала, как водится, немного теории.

Форматы справочных файлов

Самый простой вариант, обычно применяемый в крохотных и несложных программах, — текстовый (либо в формате RTF или DOC) файл с «классическим» именем ReadMe. Достоинства и недостатки такого решения очевидны и не требуют пояснений.

Затем пришла мода на «Справку» в виде HTML-страниц, открываемых в любом браузере. В дальнейшем бурное развитие средств разработки для Web затронуло практически все сферы программирования, поэтому вряд ли стоит удивляться тому, что изменилась сама природа справочной системы. В первую очередь это касается программ для Windows, прежде ориентированных на систему Windows Help (WinHelp).

Несколько лет назад Билл Гейтс в пространном меморандуме «The Internet Tidal Wave» («Приливная волна Интернета») отстаивал идею перехода к справочной системе на основе браузера. Это позволило бы Microsoft консолидировать усилия своих разработчиков и стало бы еще одним доводом в пользу применения Internet Explorer (IE). Так и появилась на свет божий всем знакомая система Microsoft HTML Help. Теперь все основные продукты Microsoft предусматривают именно ее. Другие разработчики ПО для Windows вопреки радужным прогнозам не спешат поддержать этот формат, хотя многие из них все же берут HTML Help на вооружение или планируют такой шаг.

Система HTML Help предназначена не только для составителей технической документации и разработчиков программ. С ее помощью домашний пользователь может создавать архивы HTML-документов или подшивки электронных журналов и формировать все это в виде одного компактного и удобного файла с расширением .CHM (компилированный HTML-файл). При открытии такого файла он напоминает Web-страницу с фреймовой структурой: в левом окне находится оглавление «Справки», а в правом отображается содержимое страницы.

Впрочем, у формата CHM есть один существенный недостаток — для просмотра требуется Internet Explorer версии не ниже 4.0. Кроме того, некоторые CHM-файлы (в том числе содержащие элементы ActiveX) несовместимы с Mac OS, UNIX и Windows 3.1.

Посему разработчики, которые нуждаются в решениях, не привязанных к браузерам и платформам, обращают свой взор на иные системы, например, на более ранний и простой справочный формат (файлы с расширением .HLP). Он не зависит от IE, а для его создания не требуется знание HTML, достаточно сохранить обычные текстовые страницы в формате RTF. Большинство «Справок» этого формата помимо HLP-файла также содержат файл содержания (с расширением .CNT), хотя по большому счету наличие последнего необязательно.

Конечно же, эти два классических формата не исчерпывают список вариантов, в которых может быть представлена «Справка». Так, многие компании поставляют сопутствующую документацию в виде файлов PDF. Нередки и онлайновые руководства, хотя российские реалии в виде сбойных каналов модемной связи и «кусающихся» тарифов делают их неактуальными.

Патриархи жанра

Прежде чем начать знакомство с инструментарием технического писателя, следует упомянуть о двух бесплатных приложениях Microsoft, предназначенных для создания справочных файлов. Это Help Workshop (ftp://ftp.microsoft.com/Softlib/MSLFILES/hcwsetup.EXE) и HTML Help Workshop (http://go.microsoft.com/fwlink/?LinkId=14188).

Рис. 1

Обе программы нас интересуют постольку, поскольку содержат компиляторы, используемые для сборки готовых справочных файлов (рис. 1, 2). В папке Help Workshop имеется файл HCRTF.EXE, выдающий на-гора HLP-файл, а в папке HTML Help Workshop — компилятор HHC.EXE, благодаря которому на свет появляются CHM-файлы. Для начала загрузим и установим обе программы, тем более что много места они не займут.

Рис. 2

Приемы работы с HTML Help Workshop (невзирая на некоторые отзывы, что, дескать, сей продукт предназначен исключительно для разработчиков) вполне доступны любому пользователю, знакомому с основами создания HTML-страниц. Что же касается Help Workshop, то, по мнению многих хэлперов, процесс создания «Справки» в этом приложении весьма запутан, чем не преминули воспользоваться сторонние программисты, облегчившие жизнь армии технических писателей.

Далее речь пойдет всего об одной, но очень толковой и удобной программе, которая безусловно найдет многочисленных почитателей.

Help Development Studio

Не зря, не зря говорят, что российские программисты — из числа лучших в мире! Данная программа еще раз наглядно это подтверждает. Авторы приложения Евгений и Игорь Ивановы в свое время сами перепробовали массу программ для разработки справочных систем и поняли, что ни одна их не устраивает: то все слишком запутано и не продуман интерфейс, то не хватает нужных функций. Так и родилась идея написать что-то свое исключительно под собственные нужды. Хотелось, чтобы работа с программой была легкой и понятной для начинающего хэлпера.

Программа Help Development Studio появилась в марте 2000 г. и до версии 1.4 позволяла создавать только HLP-файлы (начиная с версии 1.5 появилась поддержка формата CHM), имела русский интерфейс и была абсолютно бесплатной. В настоящее время доступна версия 1.8, занимающая в дистрибутиве всего 1 Мбайт. Переписать ее можно с сайта компании Divcom Software (http://www.divcomsoft.com/helpstd/), а стоит она 80 долл. (для российских пользователей имеются скидки). Вместе с бесплатностью программа утратила и официальную русификацию, однако в Сети можно найти файл, с помощью которого Help Development Studio вновь заговорит на родном языке (http://fotogorod.narod.ru/rysufH-1.htm). Никаких сколько-нибудь серьезных требований к ПК программа не предъявляет: достаточно 100-МГц процессора Pentium и Windows семейства 9x или NT от самых старых до новейших версий.

Создание проекта WinHelp (*.HLP)

Начнем с создания «Справки» в формате WinHelp на примере этой статьи. Главное окно программы характерно для приложений подобного класса (рис. 3). В левой части расположено окно текстового редактора, сильно напоминающее интерфейсом знакомый многим WordPad, а в правой находится список разделов будущей «Справки». Разумеется, сами по себе эти разделы не появляются — без хэлпера тут не обойдешься. Поэтому будет нелишним в начале работы набросать на листке бумаги примерную структуру справочного файла, другими словами — создать иерархию «Справки».

Рис. 3

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

Новые разделы добавляются кнопкой «Добавить раздел» или одноименной командой в меню «Разделы». Точно так же с помощью соответствующих кнопки или команд меню разделы удаляются и перемещаются вверх или вниз.

При создании нового раздела в окне свойств следует сразу же вписать название и ключевое слово для будущей системы поиска. Каждому разделу по умолчанию присваивается порядковый номер (ID), начиная с 10: следующие разделы будет иметь номера 20, 30, 40 и т. д., если вы не захотите по каким-либо причинам изменить эти номера в окне «Свойства раздела». Согласитесь, очень удобно: создаем новый раздел, заполняем его параметры, а в левой части, там, где расположен текстовый редактор, вводим нужный текст или вставляем текстовый фрагмент из буфера обмена.

Вставка объектов

1. Разделитель. Первым делом решим, будут ли страницы нашей «Справки» иметь статичную область заголовка (без прокрутки). Чтобы создать на странице такую область, впишем название раздела, щелкнем курсором в конце слова и воспользуемся либо кнопкой «Разделитель», либо одноименной командой меню «Вставка» (в английской версии эта команда/кнопка именуется Keepn). Внешне почти ничего не изменится, только в конце названия раздела появится команда [Keepn] в квадратных скобках (рис. 3). Область заголовка/разделителя можно добавлять как на отдельные страницы, так и на все с помощью опции, которую мы рассмотрим чуть позже.

2. Графика. Разумеется, никто нам не запретит размещать на страницах разделов иллюстрации в виде графических файлов BMP и SHG — другие форматы программа не понимает3. При использовании кнопки «Изображение» или одноименной команды в меню «Вставка» картинка как таковая не показывается, вместо нее будет красоваться лишь команда вида [bmc=4.bmp].

3. Ссылки. Важная часть внедряемых объектов — это, конечно же, ссылки, способные определять как переход в другой раздел «Справки», так и URL для сетевых адресов. Для создания обычной ссылки, т. е. ведущей на страницу другого раздела, следует выделить текстовый фрагмент или рисунок (вернее, команду для рисунка), после чего нажать кнопку «Стандартная ссылка» (либо вызвать одноименную команду в меню «Вставка»). В окне свойств ссылки подбираем нужный раздел, который должен открываться при нажатии на ссылку, а флажок в переключателе «Всплывающее окно» позволит открыть нужный раздел в отдельном окне.

Для создания Интернет-ссылок служат кнопка «Гиперссылка» и ее команда-близнец в меню «Вставка». Для перехода на Интернет-страницу в поле «Адрес» окна свойств гиперссылки достаточно вписать URL обычного вида (например, http://www.abcd.ru), а чтобы указать ссылку на e-mail, нужно ввести текст вида mailto:address@pochta.ru.

4. Закладки («якоря»). Еще один вид ссылок — «якорь» или закладка. Принцип действия «якорей» состоит в том, что при нажатии на ссылку откроется либо нужный участок текущего раздела, либо необходимое место другого (например, какой-либо абзац раздела откроется как начало страницы). При этом следует учитывать, что сначала должен быть создан «якорь» и лишь затем проставлена ссылка на нужный участок раздела.

Здесь нам окажут услугу две кнопки: «Якорь» и «Ссылка на якорь» (либо их клоны в меню «Вставка»). При создании «якоря» в конце выделенного текстового блока появится команда вида [Target=777], где 777 — это идентификатор «якоря», определяемый только фантазией автора «Справки».

Когда нам потребуется создать ссылку на участок раздела, определенный «якорем», выделенный текстовый фрагмент окажется подчеркнутым посередине, а в конце такого фрагмента появится команда вида [LinkT=777], указывающая как раз на заданный «якорь».

5. Видеофайл. Да-да, именно так — на странице «Справки» можно разместить AVI-файл! При этом утомленному взору разработчика явится не ожидаемая анимация, а строка вида [mci=PLAY,F:Downloads Geri?sGame.avi]. Для вставки видео служит кнопка «Видеофайл» и одноименная команда в меню «Вставка».

6. Макрос. Это довольно удобное средство, позволяющее задать дополнительные команды либо для выделенного участка текста, либо для рисунка. Нетрудно догадаться, что отвечает за это кнопка «Макрос» и ее близнец в меню «Вставка» (рис. 4). Например, можно вписать слово «Распечатать» и в списке макрокоманд выбрать действие для печати раздела — Print.

Рис. 4

7. Кнопка. На страницу можно поместить кнопку, которой присваивается название и действие в виде макрокоманд. Мелочь, а приятно. Разумеется, для этого в программе также существует кнопка с каламбурным названием. Каким? Ну конечно же «Кнопка». А в создаваемом разделе выглядит это примерно так: [Button=Распечатать,Print()].

Создание файла содержания

Как уже отмечалось, файл содержания (.CNT) не является строго обязательным, достаточно создать первую страницу «Справки» со ссылками на все разделы. Но не будем искать простых путей — нажмем кнопку «Содержание» и перейдем в редактор (рис. 5).

Рис. 5

Как видно из рисунка, в правой части этого редактора доступны все созданные разделы, в левую же часть мы будем добавлять либо заголовки (в английской версии — heading), либо обычные разделы с помощью уже знакомой кнопки «Добавить элемент».

При добавлении заголовка достаточно вписать его название, поскольку роль этого элемента заключается в отображении созданных нами разделов. Добавление раздела выполняется либо упомянутой кнопкой, либо двойным щелчком по нужному разделу в правой части редактора содержания. В первом случае придется выбрать нужный параметр (ID раздела) в выпадающем списке «Контекст» и заполнить поле «Название» (либо оставить предложенное по умолчанию название раздела). Во втором случае никакие дополнительные телодвижения не требуются — быстро и удобно, не правда ли?

Прежде чем приступить к компиляции написанной «Справки» в единый файл, нелишне заглянуть в параметры проекта и программные настройки, поскольку от этого будет зависеть как внешний вид нашего творения, так и объем файла.

Параметры проекта

Окно с этими важными настройками вызывается командой «Параметры» в меню «Проект» (рис. 6).

Рис. 6

На вкладке «Проект» обязательно включите опцию «Сжатие файла» (если только вам не нужен монстрообразный справочный файл). Также не следует забывать о языке «Справки». Информация, введенная в поле «Название файла содержания», будет отображаться в заголовке CNT-файла, а ваши ФИО и прочие данные, любовно вписанные в поле «Авторские права», будут доступны взору всех желающих при нажатии кнопки «Версия» в панели созданной «Справки».

Интересно поле «Цитата»: ежели читатель «Справки» задумает свор... простите, скопировать ваши бесценные строки, то при вставке в какую-либо программу они дополнятся лишней строчкой — как раз той, которую можно вписать в поле «Цитата».

В выпадающем списке «Раздел по умолчанию» еще раз проверим, на каком разделе будет открываться справочное окно, после чего перейдем на вкладку «Настройки». Здесь нужно обратить внимание на выбор папки, где будут сохраняться готовые справочные файлы.

Параметры программы

Основные программные настройки доступны в окне с шестью вкладками, вызываемом командой «Параметры программы» в меню «Сервис». При наличии русского интерфейса понять назначение параметров не составит большого труда, поэтому коснемся лишь некоторых.

На вкладке «Общие» можно откорректировать пути к компиляторам, а также запретить программе использовать графику. Вкладка «Модули» актуальна в том случае, если вы загрузили с сайта программы подключаемые модули («плагины») для преобразования проектов друг в друга, а также для создания онлайновых руководств. А вот на вкладке «Разделы» не забудьте обратить внимание на параметры «Вставка метки Keepn в новом разделе» и «Ключевое слово по умолчанию — название раздела» — автоматизировав эти рутинные процессы, вы сэкономите массу времени.

Свойства окна

Немаловажен и внешний вид окна «Справки». Отвечающие за это параметры вызываются командой «Свойства окна» в меню «Окно». На вкладке «Общие» в поле «Заглавие» не забудьте вписать информацию, которая будет отображаться в заголовке справочного окна. Вкладка «Кнопки» позволяет добавлять/удалять кнопки для будущего окна «Справки», а на вкладках «Позиция» и «Цвет» открывается полный простор для творчества: здесь задаются размеры справочного окна, а также цвета неподвижной и прокручиваемой областей.

Просмотр и компиляция проекта

Не волнуйтесь, прежде чем скомпилировать проект, можно вызвать предварительный просмотр почти готовой «Справки»: для этого предназначены команда «Запуск файла справки» в меню «Проект», кнопка «Запуск» или клавиша . Посмотрели, восхитились (вариант: огорчились и исправили недостатки) — теперь начинайте сборку проекта с помощью команды «Создать файл справки» (+) в меню «Проект» или кнопки «Компиляция». Если все сделано правильно и нет серьезных ошибок, то через считанные секунды в указанной папке наконец-то появится свежеиспеченный файл «Справки».

Конвертирование проекта

Как уже говорилось выше, при наличии соответствующего подключаемого модуля можно конвертировать один тип проекта в другой (WinHelp в HTML Help и обратно). Команда Convert доступна в меню «Проект», а сам процесс абсолютно несложен и занимает буквально пару секунд: пользователь волен приказать программе создать новый проект из уже имеющегося (Create a new project) либо обратить проект в иную веру (Change the current project).

Правда, вся благодать от работы с «плагинами» доступна только зарегистрированным пользователям, но это так, к слову...

Создание проекта HTML Help (*.CHM)

Создание и выбор параметров проекта в формате HTML Help практически не отличаются от аналогичных действий для проекта WinHelp, разве что при создании файла содержания для заголовков (heading) допустимо назначение своих разделов, чего HLP-файлы лишены.

Кроме того, в свойствах окна на вкладке «Панель навигации» следует включить опции «Вкладка поиска» и «Вкладка избранного», так как по умолчанию эти вкладки программой не создаются.

На вкладке «Разделы» не помешает лишний раз удостовериться в правильности начальной страницы будущей «Справки», а на вкладке «Общие» — вписать ее заглавие.

Создание онлайновых руководств

Очень интересна возможность создания справочных руководств для просмотра в онлайновом режиме, доступная по команде Make On-line Manual в меню «Проект». Программа за несколько секунд создаст такую «Справку» как X:Program FilesHelp Development Studioon-line manualindex.html. При открытии этого файла он будет выглядеть примерно так, как показано на рис. 7. Настройки для онлайнового формата вызываются командой On-line Manual Options в меню «Сервис».

Рис. 7

Следует отметить, что вся графика, внедренная на страницы обычной «Справки», при конвертировании в онлайновый формат останется в несжатом виде, т. е. займет совершенно неприемлемый для HTML-страниц объем. Выход один — самостоятельно преобразовывать графику в сжатый вид и так же вручную править HTML-код страниц.

Вместо резюме

Как видите, в одном мегабайте дистрибутива разработчикам удалось уместить практически все возможности для создания полноценных справочных файлов трех (!) форматов. К слову сказать, существуют и другие программы с похожим интерфейсом и дистрибутивом чуть большим, нежели у Help Development Studio. Но...

Одна из таких программ — Help Pad 2.7 (http://www.gardencity.net/bw/hpad/, 1,5 Мбайт, 80 долл.) — работает только в среде Windows 95/98 и генерирует CHM-файлы весьма непотребного вида. А чтобы, к примеру, создать гиперссылку, вам придется каждый раз вписывать макрос вида ExecFile(?mailto:avst@hot.ee?). Весело, правда?

Другая программа, Help Express 3.02 (http://www.gardencity.net/bw/hpad/, 1,1 Мбайт, 150 долл.), умеет создавать файлы только HLP-формата. А укомплектовано это «чудо» довеском в виде непродуманного интерфейса.

Приложение HelpScribble 7.0.1 (http://www.helpscribble.com) обучено создавать файлы в тех же форматах, что и Help Development Studio, но «весит» вдвое больше и стоит 100 долл. Ко всему прочему, вам ни за какие коврижки не удастся создать проект в демоверсии. Да и интерфейс явно перегружен значками всех цветов спектра.

Безусловно, имеются и более мощные программы, умеющие создавать справочные файлы практически всех форматов, включая PDF, например знаменитый пакет Help & Manual (http://www.helpandmanual.com/). Однако нужно учесть, что дистрибутив этого продукта занимает 13 Мбайт, а стоит он около 300 долл.

Немаловажно и то, что ни одна из конкурирующих программ не имеет русского интерфейса. Кроме того, своим соотечественникам авторы программы предоставляют отдельно оговариваемые скидки, а это для небогатых, но честных российских пользователей может стать решающим фактором. Да и национальная гордость, в конце концов, тоже не самая последняя вещь.


1 В общем, почти по Аркадию Райкину: «Привяжи к ноге динамо — пускай он ток дает в отдаленные районы».

2 Которые в народе любовно называют «глюками».

3 Конкурирующие продукты также воспринимают графику именно такого формата.