Недавно я открыл для себя удобство отложенного чтения — когда заинтересовавшую статью в сети можно прочитать в любое время, комфортно расположившись c любимым девайсом на диване / пляже / под одиноким деревцем на тропе, ведущей к базовому лагерю у подножья Эвереста. И хотя проприетарных решений для этого хватает (Instapaper, Pocket, Readability), душа настойчиво требовала OpenSource. И вот к какому решению я пришёл после исследования возможных вариантов.
Каталог
В качества каталога, в который собираются статьи, я использую приложение Wallabag (бывший Poshe, Github-страничка проекта здесь), позволяющее быстро и просто сохранить выбранный контент с оригинальным форматированием, таблицами и картинками (но при этом аккуратно вырезанной рекламой и лишними элементами) для последующего чтения его онлайн или на мобильном устройстве. Приложение предназначено для развертывания на собственном сервере, однако можно бесплатно зарегистрироваться на дружественном проекту сайте Framabag и начать пользоваться уже установленным и настроенным инстансом. Для тестирования мной был заведен аккаунт там, однако приложение настолько понравилось, что сейчас я задумываюсь о переезде на своё оборудование. Процесс установки на свой сервер подробно описан здесь.
Сохранение статей
Статьи в каталог я забираю с помощью расширения для Firefox, которое также поддерживает и мобильную версию браузера. Еще можно утаскивать тексты из активных вкладок, используя Java-Script-строку, сохраненную в закладках:
javascript:if(top['bookmarklet-url@wallabag.org']){top['bookmarklet-url@wallabag.org'];}else{(function(){var url = location.href || url;window.open('http://ссылка_на_инстанс_wallabag/?action=add&url=' + btoa(url),'_self');})();void(0);}
Также доступно расширение для Chrome и приложения для iOS и Windows Phone.
Чтение
Wallabag отдаёт список статей в виде RSS-ленты, поэтому удобно использовать для отложенного чтения любимый RSS-агрегатор. Для этого в настройках каталога генерируется личный маркер (token) и появившаяся ссылка на «Ленту непрочитанного» скармливается приложению для работы с RSS.
Для чтения на Android я использую:
- FeedEx (Android 4.0.3+) для смартфона и планшета;
- Sparse rss (Android 1.5+) для Nook Simple Touch, листание кнопками dpad «вверх» и «вниз» (кнопки с правой стороны экрана в прошивке ZeroLab Nooter).
Обе программы имеют лицензию open-source, умеют загружать статьи вместе с картинками для дальнейшего чтения оффлайн и синхронизировать ленту через установленный интервал времени. Официальное приложение для Android существует, однако оно развивается медленно и пока не умеет добавлять новые ссылки, подгружать картинки, да и вообще требует Android 2.2 (Nook Simple Touch отпадает).
Минусы решения:
- бо́льшее количество времени, требуемого для настройки, чем при использовании проприетарных решений;
- при чтении статьи через RSS на мобильном устройстве нет возможности отметить ее как «прочитанную» в каталоге Wallabag, при посещении веб-интерфейса приходится дополнительно ставить там галку на этой статье.
Плюсы:
- удобный и эффективный инструмент для отложенного чтения, в том числе оффлайн;
- возможность экспорта статей в ePub (отдельных текстов и всего каталога сразу);
- поддержка нескольких пользователей — один инстанс на всю семью и друзей;
- возможность миграции своего профиля из других сервисов отложенного чтения (Instapaper и иже с ними) и экспорта своего Wallabag-каталога в json;
- избранное, поиск, темы и теги в веб-интерфейсе;
- возможность отложенного чтения на старых версиях Android;
- открытый код, бесплатность;
- приватность (в случае использования собственного сервера).
Вместо заключения
Александр Зиновьев говорил об обучении: «Когда человек перестает учиться, он вступает в стадию старения». Надеюсь, эта небольшая статья поможет тебе, хабровчанин, читать, учиться и узнавать что-то новое проще, эффективнее и удобнее, дольше оставаясь молодыми и полными сил для дел, которые по-настоящему важны.
P.S.:
1) Уважаемый pred8or подсказывает как настроить инстанс Wallabag для локального сохранения картинок: нужно в файле конфигурации (inc/poche/config.inc.php) исправить строчку:
define ('DOWNLOAD_PICTURES', TRUE);
2) Достопочтенный subvillion делится в комментариях информацией об еще одной альтернативе — Astatum.