Двадцать лет назад каждая уважающая себя программа несла на борту неброский двойник весом в один файл, где лежала целая библиотека: оглавление с ветвящимися разделами, алфавитный указатель, полнотекстовый поиск по каждому абзацу, картинки, перекрёстные ссылки. Открыть её можно было по привычной клавише F1, и ответ выезжал за долю секунды без интернета и без рекламы. Файл назывался CHM, скомпилированная HTML-справка от Microsoft, и это была настоящая энциклопедия в кармане: целая книга, плотно сжатая, с прокладкой дорог по тексту. Сегодня такие файлы выглядят архаизмом, а продолжают жить и в Windows 11, и в любительских библиотеках электронных книг, и в корпоративной документации, потому что идея оказалась точной, как швейцарский механизм.
До CHM был WinHelp и маленькая беда больших инструкций
Чтобы понять, отчего формат CHM был долгожданным, полезно вспомнить его предшественника. Система WinHelp с её файлами .hlp пришла с ранними версиями Windows и много лет была главным способом показа встроенной справки. По своим возможностям это была работоспособная, но скромная система со своим языком разметки и суровыми ограничениями на оформление: таблицы, картинки, всё это делалось чуть не с боем, а уж о привычном тогда веб-форматировании не велось и речи.
Тем временем к середине девяностых полмира уже размечало тексты в HTML, у которого с возможностями вёрстки дело обстояло на голову лучше. В феврале 1996 года Microsoft честно предупредила общественность: WinHelp дальше не развиваем, вся энергия пойдёт в помощь на базе HTML. В августе 1997 года формат HTML Help версии 1.0 дебютировал вместе с Internet Explorer 4, а в феврале 1998-го дорос до версии 1.1a, которой Microsoft оснастила Windows 98. Новая эпоха встроенной справки официально открылась.
Идея родила великолепную последствительность. Вместо выдуманного формата велась упаковка знакомых веб-страниц в единый снабжённый поиском и оглавлением файл. Авторы документации получили знакомые инструменты мышления: страницы, гиперссылки, стили, картинки. Читатели получили красивую подачу и привычную логику навигации. Все выиграли.
Как устроен CHM внутри и почему он такой компактный
Вскрытие формата напоминает вскрытие аккуратного портфеля. Каждый файл с расширением .chm начинается с четырёх букв ITSF, что расшифровывается как Info-Tech Storage Format, внутреннее имя универсального контейнера-хранилища, на котором строится этот формат. Внутри контейнера лежат HTML-страницы со всем набором картинок и стилей, иерархическое оглавление с древовидными разделами, алфавитный индекс ключевых слов и служебные структуры для полнотекстового поиска.
Всё многообразие хозяйства утрамбовывается алгоритмом сжатия LZX. Именно он позволял носить целые руководства в файлах по нескольку мегабайт, уместных на одну дискету или на компакт-диск с программой. Рядом со своим соседом-просто-архивом формат выигрывает тем, что сжимает документацию не просто для хранения, а для быстрого чтения по частям: программа просмотра извлекает только нужные куски и делает это мгновенно.
В добавок к этому CHM умел полезные вещи из коробки: встроенный поисковик по словам и фразам, слияние нескольких файлов справки в единое хозяйство, аккуратную работу с расширенными наборами символов. Набор формата ограничивался некоторыми особенностями кодировок, однако для массовых языков этого вполне хватало. Набор навыков дал формату вторую, неожиданную жизнь: электронные книги - тогда в самое сердце цифрового чтения - один щелчок, и роман открывается с тем же оглавлением и тем же поиском.
Кто открывал и кто собирал CHM и где он таился в системе
Открыванием файлов занималась штатная программа системы, известная под именем hh.exe, панель с двумя половинами: слева древо глав и индекс, справа сама страница. По сути это был маленький специализированный браузер, крепко прибитый к документации. Нажатие F1 в программе выгоняло на сцену именно эту миниатюрную читалку, и пользователь оставался внутри своей задачи, не убегая в интернет.
Собирали CHM через отдельный компилятор из пакета HTML Help Workshop, маленькое производство, в котором список страниц, файлы оглавления и указателя перемалывались в единственный файл со всей структурой. Для авторов это было приятно просто: верстайте страницы любым привычным инструментом, составляйте оглавление, прикажите компилятору собрать, и на свет выходит готовая книга.
Полезные подробности технического охвата хорошо видны в таблице сопроводительных программ за годы жизни формата. Его поддерживает множество сторонних программ просмотра на всех платформах, а архиватор 7-zip может открыть файл CHM просто как контейнер и показать всё его содержимое, что время от времени выручает любителей копаться внутри чужих сборников. Это доказывает: формат оказался в достаточной степени прозрачным, чтобы сообщество его разобрало и поставило на службу даже без официальных инструментов.
Побочная слава источника опасности и кураторских страшилок
Удобство формата имело цену, и в своё время CHM прославился в другом качестве. Файл умел таскать с собой активное содержимое, и при определённых настройках мог открывать страницы с исполняемым кодом, что лихо использовалось вредоносными приложениями. Документ с виду безобидный, а по факту наталкивает систему на вредоносные шаги. Ситуация дошла до того, что электронная почта, файлохранилища и даже сама система стали относиться к CHM с настороженностью, а открытие таких файлов по сети настраивалось особыми предостерегающими механизмами.
Отдельная история связана с попыткой Microsoft построить формату замену. В 2002 году на конференции технических писателей компания анонсировала платформу Help 2, тоже на базе HTML, но с новым комбайном возможностей. Спустя год Microsoft отменила выход Help 2 как универсального формата общего назначения, оставив CHM живым без официального продолжения истории. Развитие оригинального формата остановлено, а поддержка в системе продолжается до наших дней: файлы CHM открываются и в Windows 11.
Параллельно CHM подарил мощное ответвление для чтения: модифицированная версия формата работала в качестве файлов .lit для фирменной читалки Microsoft Reader, а библиофилы и любители энциклопедий годами распространяли целые собрания в CHM. Толковые словари, сборники рецептов, справочники по лекарственным травам и конспекты учебных курсов переезжали в формат, как в удобный чемодан.
Что формат сказал миру встроенной помощи
Из жизни CHM советы выводятся как спелые плоды, и сбор их займёт немного времени:
- Упакуйте всё содержимое в небольшой контейнер, и люди будут носить библиотеку с собой;
- Сила формата в оглавлении, указателе и поиске, а не в красивых страницах;
- Пользователь ценит автономность: справка без интернета проникает туда, куда сетевые сайты документации не доезжают;
- Замахивайтесь на знакомые форматы разметки: чем обычнее рабочий инструмент авторов, тем лучше документация;
- Активные возможности в документальных форматах требуют самого серьёзного контроля, иначе удобная книга превратится в дырявое облако угроз.
Эти уроки доступны и понятны до сих пор, хотя многое в технике уже другое. Современная помощь в приложениях чаще всего живёт в браузере и дышит сетью, однако всё ещё встречаются инструменты, чей хелп-файл работает на паромах, в цехах, на складах и в любых уголках, где уверенно горит только индикатор питания.
Анатомия файла под увеличительным стеклом
Если поднести формат к свету и перебрать его содержимое как коллекционер перебирает марки, картина открывается любопытная. Помимо очевидных HTML-страниц файл хранит два спутника навигации: файл оглавления с расширенной древовидной структурой и файл указателя с парами "термин - адрес страницы". Рядом лежат данные полнотекстового поиска, заранее приготовленные индексы слов, благодаря которым запрос человека встречает мгновенный ответ даже в книге на тысячу страниц. Наконец, скрытые служебные записи описывают версию формата, кодировку и таблицу соотнесения уникальных имён с путями внутренних файлов.
Умение CHM хранить всё это одним куском создавало эффект портативной глыбы: файл можно было двигать между машинами как простой предмет, никаких каталогов рядом, никаких установок. Достаточно было перекинуть один предмет на дискете или по локальной сети, и у коллеги на столе появлялась целая энциклопедия. В годы, когда интернет ещё взбирался по телефонной линии, эта черта была дороже любых красивостей форматирования.
Особенно бережно относились к CHM технические писатели. Для них формат стал почти эталоном собранной документации: единый источник страниц, единый компилятор, предсказуемый результат у пользователя. Целые поколения руководств по технике, от инструкций к станкам до энциклопедий языков программирования, родились именно в этой редакции, и до сих пор на полках любителей старого софта можно отыскать настоящие сокровища в этом виде.
Почему формат пережил собственную отмену
Есть в рассказе о CHM нечто почти литературное: формат, которому официально закрыли перспективу развития ещё в двухтысячных, продолжает исправно открываться в новейшей редакции операционной системы и принимать у себя у дома обширнейшие электронные библиотеки. Такое случается, когда замысел оказывается точнее тактических планов. Отмена новых версий убрала из формата дорогостоящие новшества, но ведь их никто и не просил: требование пользователя к справке всегда звучало скромно - пусть открывается быстро, пусть у него есть поиск, пусть работает без связи.
Сегодняшнему разработчику эта история подсказывает простую житейскую мораль: прежде чем создавать платформу на вырост, спросите себя, хватит ли простого и завершённого решения. CHM дал людям ровно то, что нужно для документации, и замер в этой точке. Мир вокруг бежал вперёд, а требование "файл, оглавление, поиск, автономность" осталось лежать на месте, и именно на этом месте формат сидит себе тихо по сей день.
Отражение формата в сегодняшних библиотеках.
Формат CHM остался царём одной скромной, но массивной ниши: скачанных подборок документации и офлайн-книг. Его старшего брата с расширением .chm можно встретить у коллекционеров цифровых библиотек, их открывают читалки на всех платформах. Глаза современных пользователей к такому интерфейсу привыкают мгновенно: дерево глав слева, страница справа, поисковая строка наверху, всё по-старым добрым понятиям.
Без преувеличения можно сказать, что идея единого самодостаточного файла-сборника получила развитие и в современных форматах электронных книг, и в автономных базах знаний. Везде, где документация упаковывается одним файлом с навигацией и поиском, невольно просвечивает принцип, отточенный CHM ещё в конце девяностых. Новизны тут мало, а работа механизма по-прежнему изумляет молодых инженеров, впервые наткнувшихся на эти файлы где-нибудь на диске с древней утилитой.
Итог для аккуратной книги в одном файле.
Файл CHM родился как переливка HTML-страниц в удобный сжатый карман и сумел стать самой массовой офлайн-энциклопедией своей эпохи. Он научил индустрию праздновать простоту, научил авторов документации строить оглавление как архитектуру и до сих пор исполняет обязанности в системном инструментарии Windows, открываясь по двойному щелчку у любого желающего. Формат, о котором его создатели давно объявили "новых функций не будет", продолжает работать, потому что задумка была верной: возьми хорошо знакомые страницы, сожми их бережно и проложи по ним дорогу с оглавлением, указателем и поиском. Всё остальное было делом техники.
Если где-нибудь в старой папке на диске вам попадётся файл с расширением chm, не спешите его стирать. Откройте его двойным щелчком, оглядите аккуратное дерево глав, попробуйте поиском отыскать знакомое слово - и вы пощупаете в руках один из самых бережливых цифровых форматов эпохи дискет, маленький памятник времени, когда документацию делали с любовью порядка и экономии каждого байта.