Последнее обновление: 31.10.2015

Как мы увидели из прошлых примеров, представления используют разметку html для визуализации содержимого. Однако фреймворк ASP.NET MVC обладает также таким мощным инструментом как HTML-хелперы, позволяющие генерировать html-код.

Строчные хелперы

Строчные хелперы похожи на обычные определения методов на языке C#, только начинаются с тега @helper . Например, создадим в представлении хелпер для вывода названий книг в виде списка:

@helper BookList(IEnumerable books) {

    @foreach (BookStore.Models.Book b in books) {
  • @b.Name
  • }
}

Данный хелпер мы можем определить в любом месте представления. И также в любом месте представления мы можем его использовать, передавая в него объект IEnumerable:

Список книг

@BookList(ViewBag.Books) @BookList(Model)

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

@helper CreateList(string all) {

    @foreach (string s in all) { }
} @{ string cities = new string { "Лондон", "Париж", "Москва" }; } @{ string countries = new string { "Великобритания", "Франция", "Россия" }; }

Города

@CreateList(cities)

Страны

@CreateList(countries)

Если бы отсутствовал подобный хелпер, то нам бы пришлось по сути дублировать один и тот же html-код для создания списка. Однако этот хелпер еще довольно простой, а если нам приходится создавать по сто раз более сложную, но однотипную разметку html, тогда хелперы окажутся еще более полезными.

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

Using System; using System.Web; using System.Web.Mvc; using System.Linq; namespace BookStore.Helpers { public static class ListHelper { public static MvcHtmlString CreateList(this HtmlHelper html, string items) { TagBuilder ul = new TagBuilder("ul"); foreach (string item in items) { TagBuilder li = new TagBuilder("li"); li.SetInnerText(item); ul.InnerHtml += li.ToString(); } return new MvcHtmlString(ul.ToString()); } } }

В новом классе хелпера определен один статический метод CreateList, принимающий в качестве первого параметра объект, для которого создается метод. Так как данный метод расширяет функциональность html-хелперов, которые представляет класс HtmlHelper, то именно объект этого типа и передается в данном случае в качестве первого параметра. Второй параметр метода CreateList - массив строк-значений, которые потом будут выводиться в списке.

В самом методе с помощью объекта TagBuilder конструируется стандартный элемент html - элемент ul. При обходе массива все строковые значения обертываются в тег li и добавляются в список. И на выходе возвращается полноценные элемент ul.

Класс TagBuilder имеет ряд членов, которые можно использовать при таком подходе:

    Свойство InnerHtml позволяет установить или получить содержимое тега в виде строки

    Метод MergeAttribute (string, string, bool) позволяет добавить к элементу один атрибут. Для получения всех атрибутов можно использовать коллекцию Attributes

    Метод SetInnerText(string) устанавливает текстовое содержимое внутри элемента

    Метод AddCssClass(sting) добавляет класс css к элементу

После создания нового хелпера мы его можем использовать в представлении. Перепишем предыдущий пример следующим образом:

@{ string cities = new string { "Лондон", "Париж", "Москва" }; } @{ string countries = new string { "Великобритания", "Франция", "Россия" }; } @using BookStore.Helpers

Города

@Html.CreateList(cities)

Страны

@ListHelper.CreateList(Html, countries)

Создание справочной системы в Microsoft Help Workshop

Справочная система

Желательно, чтобы каждая программа имела справочную систему, при помощи которой пользователь мог получить исчерпывающую информацию о программе, о том, как с ней работать. Справочная система представляет собой набор файлов определенной структуры, использую которые программа Winhelp, являющаяся составной частью Windows, выводит справочную информацию, которая находится в hlp-файле.

Окно справки имеет меню и панель инструментов, позволяющие работать со справочными файлами. В зависимости от ситуации отдельные кнопки могут быть неактивны. Кроме того, разработчик справочной системы с помощью макрокоманд может изменить состав меню и панели инструментов. Создать hlp-файл можно при помощи программы Microsoft Help Workshop, исходными данными для которой является текст справки, представленный в виде rtf-файла.
Процесс создания справочной системы (hlp-файла) можно представить как последовательность следующих двух шагов:

  • Подготовка справочной информации (создание файла документа справочной информации).
  • Преобразование файла справочной информации в файл справочной системы.

Файл документа справочной информации

Файл документа справочной системы представляет собой rtf-файл определенной структуры. Создать rtf-файл справочной информации можно при помощи любого редактора, позволяющего работать с документами формата RTF, в том числе с помощью Microsoft Word. Документ может содержать графические изображения и таблицы, стилевое и шрифтовое оформление. Кроме собственно справочной информации, в него включаются управляющие данные, например, определяющие взаимосвязи между разделами документа. Сначала нужно набрать текст заголовков справки, оформив заголовки одним из стилей "Заголовок", например Заголовок 1. При этом текст каждого раздела должен находиться на определенной странице документа (заканчиваться символом "разрыв станицы"). Раздел представляет собой фрагмент справочной системы, отображаемой в окне Winhelp. Если размер окна недостаточен для отображения раздела целиком, у окна появляется горизонтальная или вертикальная полосы прокрутки. Каждый раздел справки оформляется отдельным разделом документа. Справочный файл имеет оглавление, или начальный раздел, который при иерархической организации справки выполняет роль корневого раздела. После того как текст разделов будет набран, нужно, используя сноски, пометить заголовки разделов справочной информации (сноски используются компилятором справочной системы в процессе преобразования rtf-файла в hlp-файл, файл справки). Для того чтобы пометить заголовок раздела сноской, нужно установить курсор перед первой буквой заголовка раздела и из меню Вставка выбрать команду Сноска. В открывшемся диалоговом окне Сноски в группе Вставит сноску нужно установить переключатель в положение обычную, а в группе Нумерация - в положение другая. В поле ввода номера сноски следует ввести символ # и нажать кнопку ОК.

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

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

Примечание: Лучше, чтобы идентификатор раздела справки начинался с префикса IDH_. В этом случае во время компиляции rtf-файла будет проверена корректность ссылок на разделы справки. Компилятор выведет список идентификаторов, которые перечислены в разделе файла проекта (см. ниже), но которых нет в rtf-файле.

Как правило, разделы справки содержат ссылки на другие разделы. В окне справочной системы понятия (слова), выбор которых вызывает переход к другому разделу справки, выделяются отличным от основного текста справки цветом и подчеркиваются. Во время подготовки текста справочной информации, слово-ссылку, при выборе которой происходит переход к другому разделу справки, следует подчеркнуть двойной линией. Сразу за ссылкой, без пробела, поместить идентификатор раздела справки, к которому должен быть выполнен переход. Вставленный идентификатор необходимо оформить как скрытый текст. При этом рисунки, как и текст, можно использовать для ссылки на другой раздел. Для этого рисунок соответствующим образом подчеркивается, а контекст раздела помещается сразу после рисунка. На предыдущим рисунке приведен вид окна редактора текста во время подготовки файла справочной информации. Слово "Заказчика" помечено как ссылка на другой раздел справки (здесь предполагается, что раздел справки, в котором находятся сведенья о заказчике, помечен сноской #, имеющий идентификатор IDH_1).

Создание справочной системы

После того как создан файл справочной информации системы (rtf-файл), можно приступить к созданию справочной системы (hlp-файла). Для этого удобно воспользоваться программой Microsoft Help Workshop, которая находится в файле Hcw.exe; который поставляется отдельно или вместе с Delphi (или в C++ Builder) Запускается Microsoft Help Workshop через файл Hcw.exe.

После запуска программы Microsoft Help Workshop на экране появляется главное окно программы. Основным файлом компилятора является файл проекта, который объединяет такие элементы, как текстовые файлы справок, опции, номера контекстов, и позволяет создать из них справочный файл. Для того чтобы приступить к созданию справочной системы, нужно из меню File выбрать команду New, затем в открывшемся диалоговом окне Project File Name указать тип создаваемого файла - Help Project. Далее следует выбрать папку, где находится программа, для которой создается справочная система, и где уже должен находится файл документа справочной системы (rtf-файл). Затем в поле Имя файла нужно ввести имя файла проекта справочной системы. Файлу проекта присваивается расширение HPJ.

После нажатия кнопки Сохранить открывается окно проекта справочной системы. Элементы проекта представляют собой отдельные секции, имена которых отображаются заглавными буквами и заключены в квадратные скобки. Первоначально в проекте имеется только секция , в которую включены параметры окна справки и вывода отчета о компиляции проекта.

Используя окно проекта справочной системы, можно добавить необходимые компоненты в проект, задать характеристики окна справочной системы, выполнить компиляцию проекта и пробный запуск созданной справочной системы. Для того чтобы добавить в проект файл справочной информации, нужно нажать на кнопку Files и в открывшемся диалоговом окне Topic Files - кнопку Add. В итоге открывается стандартное окно Открытие файла, позволяющее выбрать нужный rtf-файл.

В результате этих действий в окне проекта появится раздел , в котором будет указано имя файла справочной информации. Если справочная информация распределена по нескольким файлам, то операцию добавления файла нужно повторить. Для того чтобы задать характеристики главного окна справочной системы, надо в окне проекта нажать кнопку Windows. Появится окно Create a window. В поле Create a window named надо ввести main.

В результате нажатия на кнопку ОК появляется окно Window Properties, в поле Title bar text вкладки General которого нужно ввести заголовок главного окна создаваемой справочной системы.

Используя вкладку Position диалогового окна Window Properties, можно задать положение и размер окна справочной системы.

На вкладке Position находится кнопка Auto-Sizer, при нажатии которой открывается окно Help Window Auto-Sizer, размер и положение которого определяется содержимом полей вкладки Position. При помощи мыши можно менять размер и положение этого окна. После нажатия кнопки ОК координаты и размер окна Help Window Auto-Sizer будут записаны в поля вкладки Position.

Используя вкладку Color, можно задать цвет фона области заголовка раздела справки и области текста справки. Для этого надо нажать соответствующую кнопку Change и в стандартном окне Цвет выбрать нужный цвет.

Чтобы программа, использующая справочную систему, могла получить доступ к конкретному разделу справочной информации, нужно определить числовые значения для идентификаторов разделов, т.е. установить соответствия между номерами контекстов управляющих элементов приложения и разделами справочной системы. Что бы это сделать, надо в окне проекта справочной системы нажать кнопку Map, в результате чего откроется диалоговое окно Map. В этом окне разработчик может выполнять такие операции, как добавление нового соответствия или удаление существующего. Соответствия отображаются построчно в виде пар значений, разделенных знаком равенства. Слева находится контекст раздела справочного файла(сноска, обозначенная символом #), а справа - номер контекста управляющего элемента приложения.

В этом окне нужно нажать кнопку Add и в поле Topic ID, открывшегося диалогового окна Add Map Entry, ввести идентификатор раздела справки, а в поле Mapped numeric value - соответствующее идентификатору числовое значение. В поле Comment модно ввести комментарий - название раздела справочной системы, которому соответствует идентификатор. Далее приведено окно проекта справочной системы после добавления rtf-файла, установки характеристик главного окна справочной системы и назначения числовых значений идентификаторов разделов.

После того как будет подготовлен файл проекта, можно выполнит компиляцию, щелкнув на находящейся в окне проекта кнопке Save and Compile. Однако первый раз компиляцию проекта справочной системы лучше выполнить выбором из меню File команды Compile, в результате выполнения которой открывается диалоговое окно Compile a Help File.

В этом окне следует установить флажок Automatically display help file in WinHelp when done (Автоматически показывать созданную справочную систему по завершении компиляции), а затем нажать кнопку Compile. По завершении компиляции на экране появится окно с информационным сообщение о результатах компиляции и, если компиляция выполнена успешно, окно созданной справочной системы. Созданный компилятором файл справочной системы (hlp-файл) будет помещен в ту папку, в которой находится файл проекта. Если сообщений об ошибках не было, то справочный файл содержит корректную информацию и готов к использованию. Однако если при компиляции были выявлены ошибки, то справочный файл все равно создается и может быть использован, однако отдельные его элементы, например ссылки, могут не работать или работать не правильно. Компилятор справочных файлов является MDI-приложением и может иметь несколько одновременно открытых дочерних окон. После выполнения компиляции такими окнами являются окно проекта т окно результатов компиляции, причем последнее располагается поверх окна проекта. Для продолжения работы над проектом необходимо закрыть окно результатов или переключится в окно проекта командой Window/Project Name, где Project Name - имя файла проекта.

Для создания полноценной справочной системы необходимо создать cnt-файл, в котором будут храниться названия тем и разделов справочной системы. В программе Help Workshop нужно создать новый проект File->New, в открывшемся диалоговом окне выберите тип создаваемого файла - Help Contents. Откроется окно проекта, в котором нужно заполнить поле Default filename - имя файла справки (RS.hlp) и Default title - заголовок окна справочной системы.

Для добавления темы нужно нажать кнопку Add Below - откроется диалоговое окно добавления тем и разделов. Под темой понимается то, что в справочной системе отображается как иконка закрытой книжки, щелчок на которой приведет к раскрытию выпадающего списка разделов справочной системы, а раздел в справочной системе отображается как иконка листа со знаком вопроса, щелчок на которой приведет к открытию соответствующего раздела. Добавить тему можно и с помощью кнопки Add Above - эти кнопки различаются тем, что при добавлении Add Above - раздел располагается выше выделенного раздела, а Add Below - ниже. Для добавления темы необходимо установить переключатель на Heading и заполнить поле Title - название темы.

При добавлении раздела, переключатель следует установить на Topic и заполнить поля Title - название раздела (Журнал оплаты); Topic ID - идентификатор раздела (IDH_5); Help file - имя файла помощи (RS.hlp); Window type - тип окна, в котором будет отображаться раздел (main).

Использование справочной системы

Для того, что бы во время работы программы пользователь, нажав клавишу F1, мог получить справочную информацию, надо чтобы свойство Файл справки формы содержало имя файла справочной системы, а свойство Идентификатор справки - числовой идентификатор раздела справочной информации, который должен быть выведен.

Файл справочной системы приложения лучше поместить в ту папку, в которой находится файл исполняемой программы. Это позволит использовать одно и то же значение свойства Файл справки во всех экземплярах приложения и не помешает установке приложения в любую папку пользователя. Если в значении этого свойства не указан путь, Microsoft Access будет искать файл справочной системы в каталоге приложения. Если в момент нажатия клавиши F1 фокус находится на элементе управления, для которого не был создан пользовательский раздел справочной системы, то будет выведен раздел пользовательской справки для формы. Если раздел пользовательской справки для формы также отсутствует, открывается окно помощника по Office. Раздел пользовательской справки не может быть выведен на экран с помощью помощника.
Для создания файла справки можно использовать также Microsoft HTML Help Workshop- для создания файлов справочной системы в гипертекстовом формате.

Немного из теории справочных систем

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

  • Давать полное описание по вопросам использования программы.
  • Иметь графические материалы по вопросам использования программы.
  • Быть доступной для вызова из любой формы программы.
  • Иметь контекстные описания и удобную систему поиска информации.
  • Иметь минимально возможный размер.
Справочная система программного продукта пишется всей группой разработчиков проекта. Люди, отвечающие за информационное наполнение программы, пишут материалы о назначении программного продукта, дают описание информационного наполнения и рекомендации по использованию программы. Разработчики программного кода, дают описание функций программы, назначения элементов интерфейса и методов непосредственной работы. Также, программисты, производят сборку справочной системы и ее интеграцию в программу. Справочная система программы, проходит первичное тестирование. Целью первичного тестирования, является выявление недостатков, к которым относятся мертвые гиперпереходы в справочной системе, несоответствия описания - реальным программным интерфейсам и недостаточность предложенной информации, для работы с программой неподготовленного пользователя. Первичное тестирование, производится всей группой разработчиков программного продукта. Производится совместное чтение материалов собранной справочной системы. Все вопросы, предложения и замечания документируются. Затем следует общее обсуждение выявленных проблемных мест. Целью данного обсуждения, является определение списка необходимых исправлений в справочной системе.

26.11.2000
Недавно один мой знакомый принес свою программу. Принес, по его словам, «уже готовую». И действительно, InstallShield, англоязычный интерфейс и прочие вещи намекали на полную готовность к выходу в люди. Поигравшись несколько минут с окошками, я нажал F1 — реакции не последовало… Увидев мой недоумевающий взгляд, приятель быстро сориентировался и изрек: «А хелпа нету! Зачем он здесь нужен — у меня же интуитивно понятный интерфейс, понимаешь!»

Зачем нужен Help

Справочная система — это, пожалуй, та грань, которая отделяет «поделку для друзей» от программы, предназначенной для публичного распространения. Широко распространенная шутка по поводу того, что какая-то программа работает только в присутствии программиста, ее написавшего, берет свое начало от нелюбви разработчиков к написанию грамотной, полезной и удобной документации для своих творений. Пользователи обычно гораздо менее сообразительны и образованны, чем вы предполагаете. Более того, если программа ориентирована на российский рынок, помните, что в большинстве случаев наши люди хелпов не читают (причем не читают даже перед тем, как обратиться к автору программы с вопросом — в отличие от большинства иностранцев), и лишь немногие из пользователей отважатся прочитать первую страницу вашего литературного творчества. Но, тем не менее, 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».
Самая ненужная часть вашей программы
Так случилось, что с момента написания первых строк этой статьи
до ее завершения прошло довольно много времени. За это время мой приятель, о котором
я упомянул вначале, успел написать хелп к своей программе и вчера приходил ко мне
показывать свой шедевр во второй раз. Как изменились акценты за прошедшее время!
Теперь он уже всячески просил меня нажимать во всех диалогах на значок контекстной
справки и просматривать ее чуть ли не ко всем элементам программы! Самое печальное,
что, поработав с его программой почти целый день, я пришел к выводу, что без справки
ее использовать просто невозможно… И это подтолкнуло меня к совершенно неожиданному
заключению.
Есть две вещи, которые, безусловно, необходимы любой профессиональной
программе. Во-первых, такая справочная система, которая позволяет легко и быстро
разобраться во всех возможностях вашей программы. И во-вторых, такой интерфейс,
который позволит пользователю никогда не задумываться о том, есть ли у вашей программы
хелп.
Успехов!

Процесс создания chm значительно облегчает такой инструмент как HTML Help Workshop, разработанный Microsoft. Качаем HTML Help Workshop с сайта Microsoft. Устанавливаем HTML Help Workshop на свой компьютер. Создаем на локальном диске D: папку и называем ее chm. Запускаем HTML Help Workshop, выбираем в контекстном меню «File» -> «New» -> «Project». Откроется окно мастера проекта.

Необходимо указать, где будет храниться проект файла chm. Я указал созданную нами папку.

Рис. 2. Окно выбора расположения проекта

На следующем шаге ничего не меняем, так как у нас нет никаких файлов, которые можно было бы уже добавить в проект HTML Help Workshop.

Рис. 3. Окно указания какие файлы, необходимые для создания справки уже есть у вас

Нажимаем «Готово». У нас получился пустой проект. Теперь нужно подготовить файлы, без которых невозможно создание chm. Главное – это сами страницы, содержащие справку. Для их создания необходимо выбрать в контекстном меню «File» -> «HTML File», в появившемся окне набрать название страницы, которую будем создавать. Я назвал ее «Intro».

Рис. 4. Создание первого файла HTML

После того как вы вбили свое название и нажали «OK», перед вами будет окно, в котором уже есть пустая html страница, если мы сохраним ее в таком виде, то это будет просто пустая html страница c заголовком «Intro». Наберите что-нибудь между тегами и сохраните страницу, нажав на изображение дискеты, в папке D:\CHM.

Рис. 5. Редактор HTML страниц

Также создайте еще пару страниц, чтоб можно было немного поэкспериментировать. Я создал страницы «FolderIntro.htm» и «Help In Folder.htm»

Рис. 6. Файлы в папке проекта

Теперь у нас есть 3 файла, которые необходимо скомпилировать в один файл chm. Но для того, чтобы созданный chm был полноценным важно наличие дерева каталогов и страниц справки, хранящихся внутри файла. Это дерево всегда располагается слева от текста справки. Для создания этого дерева нам нужно перейти на вкладку «Contents» в окне HTML Help Workshop. При нажатии на эту вкладку появится вопрос:

Рис. 7. Создание файла контента (в котором хранится древовидная структура справки)

Мы, конечно же, соглашаемся и создаем новый файл контента. Примем то имя файла, которое предложит нам HTML Help Workshop – «Table of Contents.hhc». С левой стороны обращаем внимание на вертикальный ряд кнопок, ими мы будем пользоваться при создании файла контента. Нажмем верхнюю из них – «Contents Properties».

Рис. 8. Окно в котором создается дерево контента

Появится такое вот окошко «Table of Contents Properties», можете в будущем поиграться с настройками стилей и видов, но сейчас мы не будем тут ничего менять, закроем окно. Рассмотрим кнопки немного ниже, чем кнока «Contents Properties», первая (с изображением папки) – создает каталог внутри файла chm, в который можно помещать страницы, вторая (с изображением исписанного листа бумаги) – создает страницу внутри файла chm, третья (карандаш) – редактирует страницу или каталог внутри файла chm, четвертая – удаляет страницу или каталог из списка страниц внутри файла chm. Еще ниже, расположены кнопки, которые позволяют перемещать страницы и каталоги вверх и вниз по списку, также передвигать правее и левее. Предпоследняя кнопка для просмотра HTML кода страницы и последняя, чтоб сохранить всю эту беду.

Итак, давайте приступим к созданию дерева каталогов. Нажмем на кнопку с изображением листика, перед нами появится окно, в котором заполняем поле «Entry title» (у меня набрано Intro). Нажимаем кнопку «Add…», появляется окно «Path or URL», набираем в поле «File or URL» название нашей первой созданной html страницы. Так как страница хранится в той же папке, что и сам проект – D:\CHM, то нет необходимости указывать полный путь к файлу.

Рис. 9. Добавление страницы в таблицу контента

Рис. 10. Добавление страницы в проект

Затем нажимаем «OK» в обоих окошках. Теперь нажимаем на кнопку с изображением папки. Появится окно, которое интересуется вставить ли каталог в начало таблицы контента. Мы согласимся, а потом, если надо, изменим.

Рис. 11. Указание расположения записи в дереве контента

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

Рис. 12. Что-то похожее на дерево контента

Сохраним таблицу контента.

Теперь создадим «Индекс» для файла chm. Для этого перейдем на вкладку «Index» и согласимся создать новый индексный файл «index.hhk». В появившемся окне нажимаем на кнопку с изображением ключа, набираем в поле «Keyword» ключевое слово, при поиске которого по индексу (когда файл справки будет уже создан) будет открываться определенная страница. После того, как указали ключевое слово, также как и при создании таблицы контента, нужно указать файл, который будет соответствовать этому ключевому слову.

Рис. 13. Окно создания индекса

После того как созданы таблица контента, индекс и сами html файлы можно приступить к непосредственно настройке файла chm. Для этого переходим на вкладку «Project», и тут нажимаем на самую верхнюю в вертикальном ряду кнопку. Настраиваем все как на скриншотах.

Рис. 14. Настройка проекта вкладка General

Рис. 15. Настройка проекта вкладка Files

На вкладке «Files» видно, что необходимо указать какие файлы мы используем как Contents file и Index file, а также Full text search stop list file. Первые два файла мы создали ранее, а последний создадим, нажав кнопку «Browse…» и указав имя «search». После этого нажимаем «OK».

Для создания поиска по файлу chm необходимо на вкладке «Compiler» поставить галку «Compile full-text search information».

Теперь жмем на кнопку с изображением папки (вторая сверху), в появившемся окне нажимаем кнопку «Add…», выделяем все html файлы, которые хотим добавить в справку и нажимаем «Открыть». Все файлы будут добавлены в файл справки. Теперь у нас должна быть такая картина.

Рис. 16. Добавления файлов HTML

Остается только скомпилировать файл chm. Нажимаем на самую нижнюю кнопку в вертикальном ряду кнопок.

Рис. 17. Компиляция

Появляется лог, того что проделано. Открываем папку D:\CHM, и видим там готовый файл «MyProject.chm». На этом создание chm завершено.

) (книжн.). Поощрение, содействие кому-чему-нибудь предосудительному, неодобряемому. Потворство лентяям. «Я тебя, старого пса, пошлю свиней пасти за утайку правды и потворство к молодому человеку.» Пушкин .


Толковый словарь Ушакова . Д.Н. Ушаков. 1935-1940 .


Синонимы :

Смотреть что такое "ПОТВОРСТВО" в других словарях:

    Поблажка, повадка, поноровка, потачка, поддакивание, попустительство, послабление, облегчение, смягчение, снисхождение, терпимость, баловство; благоволение, соизволение. Он никому не дает спуску. .. Ср … Словарь синонимов

    ПОТВОРСТВО. Слова потворство, потворствовать для нас слова книжные. Между тем по своему происхождению они восходят к народной речи и, во всяком случае, находят себе параллели в таких южновеликорусских словах, как севск. потвóрить баловать. Ср.… … История слов

    потворство - ПОТВОРСТВО, либерализм, попустительство, устар. попущение, разг. баловство, разг. поблажка, разг. потакание, разг. потачка, разг. сниж. повадка ПОТВОРЩИК, устар. баловник, устар. повадчик, устар. потаковщик, разг. потакатель, разг.… … Словарь-тезаурус синонимов русской речи

    ПОТВОРСТВОВАТЬ, твую, твуешь; несов., кому чему. Не препятствовать, снисходительно относиться (к чему н. предосудительному, отрицательному). П. лени. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 … Толковый словарь Ожегова

    Мн. потворы чары, потворить заколдовать, превратить, признать ч. л. , укр. потвiр, род. п. потвору, ж. потвора урод, чудовище, блр. потвора потворство, потворiць потворствовать, баловать, др. русск. потворити улучшить, устроить заново,… … Этимологический словарь русского языка Макса Фасмера

    потворство - ПОТВОРСТВО, а, ср Снисходительное отношение к чему л. (обычно плохому, предосудительному, нежелательному) или кому л. в чем л.; Син.: попустительство, Разг. потачка, Разг. поблажка. Потворство слабостям человеческим … Толковый словарь русских существительных

    Ср. Поощрение, снисходительное отношение к кому либо, чему либо, вызывающему осуждение. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой

    Потворство, потворства, потворства, потворств, потворству, потворствам, потворство, потворства, потворством, потворствами, потворстве, потворствах (Источник: «Полная акцентуированная парадигма по А. А. Зализняку») … Формы слов

    - @font face {font family: ChurchArial ; src: url(/fonts/ARIAL Church 02.ttf);} span {font size:17px;font weight:normal !important; font family: ChurchArial ,Arial,Serif;}  чародейство, колдовство … Словарь церковнославянского языка

    потворство - Искон. Суф. производное от потворъ «поблажка» (исходное слово творить) … Этимологический словарь русского языка

Книги

  • Бегущий в потоке. Как получать удовольствие от спорта и улучшать результаты , Чед-Менг Тан. О книгеАвтор знаменитой концепции потока Михай Чиксентмихайи с соавторами пишут о том, как достигать состояния потока во время бега как на тренировках, так и на соревнованиях и благодаря…