- PVSM.RU - https://www.pvsm.ru -
Я люблю читать Хабр (а также ЖЖ, roem.ru, новости рамблера и ещё много чего) на своей любимой электронной книге Nook [1] и, изредка, на своём мобильном на андроиде. На читалке я читаю, чтобы не портить глаза, и не напрягаться лишний раз, сидя за компьютером, а на мобильном от безысходности стоя в какой-нибудь очереди.
Я сделал страницу readitlaterlist.com/unread [2] (сервис из серии «прочту позже») домашней на моей читалке, поставил приложение на мой телефон, и удобно добавляю топики с Хабра (ЖЖ и прочих), которые хочу почитать на читалке, с помощью плагина [3] для Firefox'а.
Казалось бы, всё замечательно, но вот беда: обычная версия Хабра грузится в браузере моего Нука больше минуты, притормаживает и из-за вёрстки под обычные экраны необходимо вручную центровать колонку с текстом. Впрочем, неудобства я испытывал с большинством полноразмерных страниц различных СМИ и блогов.
Я пробовал мигрировать на Instapaper [4], т.к. он поддерживает выгрузку в epub и mobi (можно даже слать себе на email, например, для автоподгрузки на Kindle), но и тут проблема: все сервисы при вытаскивании текста статьи с Хабра режут комментарии (Хабр без комментариев?!?!).
В конце-концов, я пришёл к тому, что перед отправкой в ReadItLater я вручную правил url поста на хабре, чтобы переключиться на мобильную версию этого поста (сейчас это лишь добавить m.
, а раньше приходилось удалять /<имя блога>/
, ставить posts
, а также добавлять m.
). А на сайтах СМИ я выискивал ссылки вида «версия для печати» или «версия для PDA».
В конце-концов, мне надоело делать эту обезьянью работу и моё терпения лопнуло. Я задумал писать плагин для firefox'а. В процессе поисков я наткнулся на плагин для vimperator [5]'а (плагин для firefox'а, затачивающий его под управление с клавиатуры, о нём на хабре: раз [6], два [7]): readitlater.js [8]. Плагин содержит ошибку в одной команде и жуткие комментарии на японском, но если вооружиться google translat'ом и разобраться, то дело своё он делает.
К тому моменту я уже подсел на vimperator (всем очень советую!) и решил допиливать именно readitlater.js.
Сам плагин добавляет несколько команд:
ril a[dd]
— добавить текущую страницу в ReadItLater (или ril a url title
добавить произвольный url с произвольным заголовком)ril o[pen]
— открыть страницу из списка непрочтённых в ReadItLater (с перебором по TAB)ril r[ead] url
— удалить url из списка непрочтённых в ReadItLater (с перебором по TAB)ril get
(вытащить список прочтённых), ril stats
(посмотреть статистику)Оказалось, что основным языков написания плагина являлся Javascript и код плагина достаточно ясен. В итоге я поработал над плагином и в дополнение к имеющимся командам я добавил команду ril m[add]
. Она работает как ril a
, но для ряда сайтов перед добавлением меняет url на url мобильной версии или версии для печати.
Кроме того, я поправил баг в ril get
и сделал так, что ril read
без url помечает прочтённой текущую страницу. Кроме того я добавил README и худо-бедно перевёл внутреннюю документацию с японского.
На данный момент плагин поддерживает следующие сайты:
И сейчас туда без особого труда можно добавить новые.
Уже 2 месяца пользуюсь плагином и не нарадуюсь :)
Установка очень проста:
:restart
Результаты моих трудов можно видеть здесь: github.com/petRUShka/readitlater.js [17]
Если кому-то хочется добавить поддержку любимых сайтов, то сделать это можно следующим образом:
if(url.match(/://habrahabr.ru/))
args["url"] = url.replace("habrahabr.ru", "m.habrahabr.ru").replace(/.ru/.+/(d+)/, ".ru/post/$1").replace(/#habracut$/, "");
Если кто-то заинтересован, в том, чтобы читать статьи не онлайн, а оффлайн, то можно воспользоваться скриптом миграции из ReadItLater в Instapaper [19]. Например, можно делать так перед выгрузкой в epub. Кстати, Instapaper не режет комментарии в мобильной версии !! Так что можно смело выгружать.
В будущем ради это функциональности я планирую добавить в плагин поддержку Instapaper. За сим откланяюсь.
Автор: mpetrunin
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/firefox-2/4803
Ссылки в тексте:
[1] Nook: http://ru.wikipedia.org/wiki/Barnes_%26_Noble_Nook
[2] readitlaterlist.com/unread: http://readitlaterlist.com/unread
[3] плагина: https://addons.mozilla.org/ru/firefox/addon/read-it-later/
[4] Instapaper: http://www.instapaper.com/
[5] vimperator: https://addons.mozilla.org/en-US/firefox/addon/vimperator/
[6] раз: http://habrahabr.ru/post/16197/
[7] два: http://habrahabr.ru/post/38298/
[8] readitlater.js: https://github.com/vimpr/vimperator-plugins/blob/master/readitlater.js
[9] habrahabr.ru: http://habrahabr.ru
[10] livejournal.com: http://livejournal.com
[11] www.trud.ru: http://www.trud.ru
[12] lenta.ru: http://lenta.ru
[13] roem.ru: http://roem.ru
[14] www.guardian.co.uk: http://www.guardian.co.uk
[15] news.rambler.ru: http://news.rambler.ru
[16] readitlater.js: https://github.com/petRUShka/readitlater.js/blob/master/readitlater.js
[17] github.com/petRUShka/readitlater.js: https://github.com/petRUShka/readitlater.js
[18] addItemByArgsWithSubstitution: https://github.com/petRUShka/readitlater.js/blob/master/readitlater.js#L522
[19] скриптом миграции из ReadItLater в Instapaper: https://github.com/lepht/ReadItLater-to-Instapaper-Migrator
Нажмите здесь для печати.