Перейти к содержанию
Автор: LUMD

Kage — инструмент для офлайн‑копий веб‑сайтов без JavaScript

Kage позволяет клонировать любой сайт в локальную папку, удаляя скрипты и сохраняя только HTML, CSS, изображения и шрифты, а затем упаковать его в ZIM‑файл или самодостатичный бинарник.

Kage — утилита, которая сохраняет веб‑страницу в виде полностью автономного набора файлов, полностью избавив её от JavaScript. Инструмент открывает каждую страницу в headless‑Chrome, ждёт завершения загрузки, делает снимок DOM и заменяет все внешние ресурсы локальными копиями. Полученный набор выглядит как оригинальный сайт, но при открытии не выполняет ни одного скрипта.

Как работает процесс клонирования?

Kage запускает Chrome, переходит по указанному URL и ждёт, пока страница «устаканится». Затем делает snapshot DOM, удаляет все <script>‑теги и заменяет ссылки на CSS, изображения и шрифты на пути внутри локальной папки. После этого сохраняет полученный HTML‑файл и скачанные ресурсы. Ссылка в оригинальном документе переписывается так, чтобы указывать на только‑что сохранённый файл.

Какие команды доступны?

  • kage clone <url> — рендерит сайт в headless‑Chrome и сохраняет его без скриптов.
  • kage serve <dir> — поднимает простой HTTP‑сервер для локального просмотра клона.
  • kage pack <dir> — упаковывает папку в ZIM‑архив или в самодостатичный бинарный файл.
  • kage open <file.zim> — открывает готовый ZIM‑файл для чтения.

Что можно настроить при клонировании?

Kage поддерживает набор флагов, позволяющих ограничить объём копии: --max-pages задаёт максимальное количество страниц, --max-depth — глубину обхода ссылок, --subdomains — включение поддоменов, --scroll — автоматическую прокрутку для подгрузки lazy‑loaded изображений. Флаг --chrome указывает путь к исполняемому файлу Chrome/Chromium, а --force принудительно удаляет существующий клон перед новым запуском.

Как упаковать сайт в один файл?

После клонирования папку можно превратить в ZIM‑файл (kage pack example.com) — открытый формат, поддерживаемый Kiwix. ZIM хранит текст в сжатом виде (zstd) и сохраняет медиа‑файлы без изменений, что позволяет открывать его в любой ZIM‑читалке. Для полной автономии можно собрать самодостатичный бинарник (kage pack example.com --format binary -o example), который содержит как архив, так и небольшую программу‑сервер. Полученный исполняемый файл запускает локальный сервер и открывает сайт в браузере или, при сборке с тегом webview, в отдельном окне без браузера.

Какой результат получает пользователь?

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

Что это значит для бизнеса?

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