Offline-версия
Все-таки сделал offline-версию спектатора для скачивания. Самая последняя версия. Размер: 2.8 Mb. Включает в себя: все заметки (1-329) с картинками. Формат — .chm, для его просмотра необходимо иметь: Windows + IE 5.Вся оффлайновая версия выполнена в виде одного файла (.chm). Кому интересно, как это сделано — читайте дальше, кому нет — ну и не надо.
Этап первый. Создание нормальной html-версии сайта.
Проблема: сайт борется за звание динамического. Поэтому «нормальной» html-версии сайта не существует. Пути решения: скачать сайт какой-нибудь качалкой, типа offline explorer или teleport pro. Не канает: в результате получаем кучу непонятно чего со странной структурой директорий.
А мы пойдем другим путем: сайт динамический, но кто мешает нам нагенерировать страниц и сохранить их в статическом виде? А никто. В PHP есть функция ob_start (и иже с ней). Эта функция влючает буферизацию вывода, или, говоря простым языком, все, что должно выводиться на экран (в браузер) во время исполнения php-скрипта, включая html, не будет никуда выводиться, а будет идти в буфер. А буфер потом можно просто считать и записать на диск, в результате чего все, что должно было пойти в браузер, пойдет в файл на диске.
Пример:
<?
ob_start ();
// включаем буферизацию
......
// тут исполняем всякую фигню (собственно, сам php-скрипт с html’ем).
?>
Тут, например, может идти какой угодно html-код.
<?
$buffer=ob_get_contents;
// считываем буфер
ob_end_clean ();
// выключаем
?>
В результате имеем в переменной buffer все, что должно было выводиться в браузер. Записать это на диск — плевое дело.
Возможности буферизации может представить себе любой человек с богатым воображением: кэширование динамически генерящихся страниц, например. Или сжатие страницы перед выводом. В общем, смотрите —
Очень полезные ссылки по теме:
- Сжатие страницы (gzip) с использованием буферизации;
- Output Buffering With PHP;
- Output buffering, and how it can change your life;
- Controlling PHP Output: Caching and compressing dynamic pages;
- Output buffering: пример использования.
Этап второй. «Куда деть эту кучу файлов?»
Просто так дать скачивать это все в виде кучи html-файлов — это как-то не модно, верно? А руки у меня давно чесались попробовать одну вещь... Есть такой формат — .chm. Это относительно новый (относительно .hlp) формат хелпа для Windows. Желающие могут поискать у себя на диске файлы *.chm и убедиться. Главная фича этого формата в том, что .chm файл компилируется из кучи простых html-файлов (с картинками и всеми прилагающимися файлами).
Для этих целей используется программа HTML Help Workshop, которая совершенно спокойно лежит на сайте microsoft.com — нужно только знать, где искать. Я знал, но на поиски все равно угробил минут пять. Вот так это чудо выглядит:

Управление простое, кому надо — разберетесь. Полезная вещь: при компиляции можно автоматически проиндексировать все файлы (compile full-text search information) и сделать возможность поиска (жутко глючная вещь, но иногда работает как надо).
Очень полезные ссылки по теме:
Этап третий. Выводы.
Ссылки (я про это писал) все-таки надо как-то разграничивать на внутренние (в пределах сайта) и внешние. Черезвычайно полезно для оффлайновой версии. Думаю над этим.