Проекты‎ > ‎

Проект "Книгочей"

"Книгочей" - проект создания книжной online-читалки на основе букмарклетов. Предполагается, что читалка будет целиком сидеть в меню закладок браузера и запускаться одним кликом мыши. После запуска букмарклет будет преобразовывать веб-страницу с текстом книги в более читабельный вид. Примерно то же самое делают TidyRead и Readability,  но "Книгочей" будет заточен не на сайты вообще, абы какие, а именно на книги из русскоязычных online-библиотек.

Для примера возьмём мою книгу "Страна Лимония" в библиотеке Флибуста. Вот так она выглядит в окне браузера:


На мой взгляд - читать не очень удобно. Мелко, строчки длинные, правый край рваный, переносов слов нет, да еще панель навигации мешается... Конечно, размер шрифта можно и увеличить с помощью горячей клавиши Ctrl+Plus, но...

Лучше применить букмарклет.

Voila!



Ну, это же совсем другое дело! 

Итак, очередная версия читалки-букмарклета:

Создайте на панели закладок вашего браузера новую закладку и назовите ее "Книгочей 0.2"

В окне настроек закладки вставьте в поле "URL" или "Адрес" следующий текст:

Content

javascript:if(document.createElement){void(readStyle='style-felsenstein');void(readSize='size-medium');void(readMargin='margin-narrow');void(defLang='ru');void(head=document.getElementsByTagName('head').item(0));void(logo=document.createElement('script'));void(logo.src='http://home.mnet-online.de/felsenstein/ebook/logo.js');void(logo.type='text/javascript');void(head.appendChild(logo));void(script=document.createElement('script'));void(script.src='http://home.mnet-online.de/felsenstein/ebook/readability/js/readability.js?x='+(Math.random()));void(script.type='text/javascript');void(script2=document.createElement('script'));void(script2.src='http://home.mnet-online.de/felsenstein/ebook/hyphenator/Hyphenator.js?bm=true');void(script2.type='text/javascript');void(css=document.createElement('link'));void(css.href='http://home.mnet-online.de/felsenstein/ebook/readability/css/main.css');void(css.rel='stylesheet');void(css.type='text/css');void(css.media='screen');void(head.appendChild(script2));void(document.body.style.textAlign='justify');void(head.appendChild(css));void(setTimeout('head.appendChild(script)',1000));}

Сохраните изменения.

Как можно заметить из текста букмарклета, очистку страницы от мусора и преобразование текста выполняет скрипт Readability а  переносы расставляет скрипт Hyphenator. Выравнивание текста по ширине, так уж и быть, закладка делает сама.

В новую версию букмарклета добавлен "язык документа по умолчанию" - русский. Если вы читаете тексты на других языках, то вы не увидите переносов слов. Если же переносы в языках, отличных от русского, вам всё-таки требуются, то либо замените в тексте букмарклета defLang='ru' на defLang='en' или defLang='ua', или вообще сотрите void(defLang='ru'); - тогда букмарклет в трудных случаях будет просить ввести в окне диалога язык документа.

Скорость работы букмарклета теперь увеличена, на обработку книжки в 800 Кб. тратится секунды три. Если почему-то не появились переносы (такое бывает), просто нажмите кнопку букмарклета второй раз.

Добавлено мгновенное переключение отображения текста в "ночной стиль" (негативный).

Добавлено листание текста вперед-назад экранными кнопками "Page Up" и "Page Down".

Стиль текста пока не настраивается никак, версия 0.2, как и версия 0.1, является "вещью в себе". Позднее сделаем. Может быть. Пока можете попробовать вручную заменить в коде style-ebook на style-felsenstein (аналогично, вместо size-medium можно подставить size-x-small, size-small, size-large или size-x-large . Ширина полей задается значением readMargin и может быть margin-x-narrow, margin-narrow, margin-medium, margin-wide и margin-x-wide ). Наиболее подходящие вам значения можно "примерить" на страничке Readability.

В библиотеке Мошкова перед применением букмарклета рекомендуется сначала убрать форматирование текста, переводом его в Fine HTML (селектор справа вверху страницы)


Приятного чтения!

Ваши мнения и замечания принимаются на форуме The-eBook.

Comments