Первый выпуск консольного браузера Offpunk, оптимизированного для работы в offline-режиме

Опубликован первый стабильный выпуск консольного браузера Offpunk, поддерживающего помимо открытия Web-страниц работу по протоколам Gemini, Gopher и Spartan, а также чтение новостных лент в форматах RSS и Atom. Программа написана на языке Python и распространяется под лицензией BSD.

Ключевой особенностью Offpunk является ориентация на просмотр контента в offile-режиме. Браузер позволяет подписываться на страницы или помечать их для дальнейшего просмотра, после чего данные страницы автоматически кэшируются и при необходимости обновляются. Таким образом, при помощи Offpunk можно поддерживать копии сайтов и страниц,
доступные всегда для локального просмотра и поддерживаемые в актуальном состоянии благодаря выполнению периодической синхронизации данных. Параметры синхронизации настраиваются пользователем, например, какой-то контент может синхронизироваться раз в день, а какой-то раз в месяц.

Управление производится через систему команд и клавиатурные комбинации. Имеется гибкая система для ведения многоуровневых закладок, подписок и архивируемого контента. Для разных MIME-типов можно подключать свои обработчики. Разбор и отображение HTML-страниц осуществляется с использованием библиотек BeautifulSoup4 и Readability. Изображения могут преобразовываться в ASCII-графику при помощи библиотеки chafa.

Для автоматизации выполнения действий используется RC-файл, определяющий последовательность команд при запуске. Например, через RC-файл можно автоматически открывать домашнюю страницу или загружать содержимое каких-то сайтов для последующего просмотра в offline. Загружаемое содержимое сохраняется в каталоге ~/.cache/offpunk/ в виде иерархии файлов в форматах .gmi и .html, что позволяет при необходимости изменять содержимое, проводить ручную чистку или просматривать страницы в других программах.

Проект развивается автором протокола Gemini и продолжает развитие Gemini- и Gopher-клиентов AV-98 и VF-1. Протокол Gemini значительно проще протоколов, используемых в Web, но при этом более функционален, чем Gopher. Сетевой протокол Gemini напоминает сильно упрощённый HTTP поверх TLS (трафик обязательно шифруется), а разметка страниц ближе к Markdown, чем к HTML. Протокол подходит для создания компактных и лёгких гипертекстовых сайтов, лишённых усложнений, свойственных современному Web. Протокол Spartan рассчитан на передачу документов в формате Gemini, но отличается организацией сетевого взаимодействия (не использует TLS) и расширяет возможности Gemini средствами для обмена бинарными файлами и поддерживает отправку данных на сервер.


Release. Ссылка here.