OutWiker 1.9.0.782 (unstable) и новый плагин WebPage

OutWiker 1.9.0.782 (unstable) и новый плагин WebPage

Выход очередной нестабильной версии OutWiker задержался, но за последние два месяца было сделано очень многое. После выхода предыдущей нестабильной версии я взялся за плагин, который обещал сделать до выпуска финальной версии OutWiker 1.9 — это плагин WebPage, предназначенный для скачивания страниц из интернета.

Да, повозиться с ним пришлось прилично, но благодаря этому плагину стало понятно, что нужно поменять внутри самого OutWiker, чтобы сторонним плагинам было легче создавать новые типы страниц. Поэтому внутри OutWiker код был местами переписан, исправлен, а заодно были добавлены новые возможности для плагинов. Поэтому плагин WebPage работает только с OutWiker версии 1.9.0.782 (про которую я сейчас пишу) и выше.

webpage_3

Как вы уже поняли, плагин WebPage добавляет новый тип страниц (web-страницы), внешне очень похожий на HTML-страницы, но отличие их состоит в том, что web-страницу нельзя создать через стандартный диалог создания страниц (с этим была связана первая внутренняя переделка OutWiker). Однако при установке плагина WebPage в главном меню появляется новый пункт «Web-страница», который содержит два пункта: «Создать web-страницу того же уровня» и «Создать дочернюю web-страницу».

menu

Кроме этого меню плагин добавляет кнопки для тех же действий на панель дерева заметок (это было второе изменение в OutWiker — раньше плагины не могли добавлять туда свои кнопки, по крайней мере без особых шаманств)

tree_buttons

Если мы нажмем одну из этих кнопок или выберем соответствующий им пункт меню, то откроется диалог, где мы должны будем ввести ссылку, по которой располагается скачиваемая страница и выбрать метки для нее:

dialog_download

После нажатия кнопки «Ok», чтобы пользователь не скучал во время скачивания файлов, ему показывается прогресс загрузки.

dialog_download_progress

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

enter_title

Часто заголовки страниц в интернете слишком длинные, а это может быть проблемой для пользователей Windows, так как все заметки в OutWiker хранятся в виде папок на диске, имена которых соответствуют заголовкам страниц, а под Windows, если не предпринимать особых ухищрений, длина пути ограничена 255 символами. Поэтому следите, чтобы заголовок был не очень длинный. Хотя, если вы столкнетесь с этой проблемой, OutWiker об этом напишет, и ничего страшного не произойдет, просто страница не будет создана.

После ввода заголовка диалог закроется, а в дереве появится новая заметка:

webpage

При скачивании плагин пытается найти на странице все необходимые картинки, CSS и скрипты JavaScript, чтобы страница открывалась в том виде, как вы ее видели в браузере, и при этом не требовалось что-либо докачивать из интернета. Те нюансы, которые при этом приходится учитывать, составляют внушительный список, о чем я собираюсь написать отдельный пост в ближайшее время. Для примера, ссылки на картинки могут быть указаны не только в теге <img>, но и в стилях CSS, в атрибутах background разных тегов, а один CSS может импортировать другой CSS. И все эти файлы нужно не только скачать и положить в отдельную папку (для этих целей у web-страниц создается папка __download), но и скорректировать пути до картинок, скриптов и CSS на страницах HTML и CSS. Наверняка я не предусмотрел еще какие-то нюансы, на которые пока не натыкался.

Нет ничего страшного, если какие-то картинки, упомянутые в коде HTML не скачаются (это могут быть неправильные ссылки, или сервер неожиданно перестанет отвечать), такие файлы плагин проигнорирует, но напишет в логе, что такой-то файл скачать не удалось.

Кстати, лог полностью сохраняется, и его можно посмотреть, если выбрать web-страницу в дереве заметок, а затем выбрать пункт меню «Web-страница — Показать информацию о web-странице». После этого откроется окно, в котором будет показана ссылка на исходную страницу и лог скачивания.

dialog_log

При выборе в дереве заметок web-страницы в меню «Web-страница» появляются новые пункты, например, пункты меню для открытия исходной ссылки в браузере, копирования исходной ссылки в буфер обмена и отключения скриптов на странице (об этой кнопке я напишу чуть позже), а также добавляются инструменты для редактирования страницы.

menu_full

Внешне работа с web-страницами напоминает работу с HTML-страницами: те же две вкладки «HTML» и «Просмотр», те же кнопки и пункты меня для добавления тегов. Только на вкладке «HTML» вы видите полный текст скачанной страницы (на HTML-страницах в ней отображается только содержимое тегов <body>…</body>). Его можно исправлять, как вам захочется (скорее всего захочется удалить какое-то лишнее содержимое вроде рекламы или меню навигации по сайту).

В перспективе я хочу добавить для web-страниц что-то вроде режима для чтения или adblock, инструмент, который бы удалял со страницы содержимое, отвлекающее от основного текста. Как он будет определять, что важно, а что нет — пока вопрос, но если сайт использует новые теги из HTML5 (<header>, <nav>, <aside>, <footer>), то это значительно облегчит анализ.

Один шаг в этом направлении уже сделан. По умолчанию при рендеринге страницы из нее удаляются все скрипты. Сделано это из-за того, что под Windows при использовании движка IE, некоторые скрипты (связанные с рекламой) на некоторых сайтах вызывали долгое зависание (где-то на минуту), с WebKit под Linux такой проблемы не замечал. Поэтому была добавлена новая кнопка «Отключить скрипты на странице» (и одноименный пункт меню), которая нажата по умолчанию.

disable_script_button

Если без скриптов страница отображается некорректно, то вы можете отжать эту кнопку, и тогда скрипты вернутся на свое место. При использовании этой функции важно понимать, что при отключении скриптов исходный текст страницы не изменяется, на вкладке «HTML» скрипты остаются, но они удаляются перед показом на вкладке «Просмотр».

Архитектура плагина WebPage спроектирована таким образом, что можно делать плагин к плагину WebPage, который может, например, видоизменять код HTML на конкретных сайтах. Для этого тоже пришлось несколько расширить возможности системы событий в OutWiker, но об этом я напишу в отдельной статье, когда буду писать документацию про внутреннее устройство OutWiker.

Часто, когда скачиваешь страницу из интернета, хочется подчеркнуть в ней какие-то интересные фрагменты. Для этой цели в HTML5 был введен тег <mark>…</mark>. По умолчанию текст, выделенный этим тегом, помечается желтым цветом, имитирующий желтый маркер.

mark

Для удобного добавления этого тега на web-страницы и HTML-страницы была добавлена специальная кнопка.

mark_button

Чтобы не обделять викистраницы, для них тоже был добавлен аналог этого тега — команда [!…!], которая выполняет аналогичную функцию. Кнопка на панели инструментов викистраниые для этой команды выглядит так же.


Вот над чем шла работа в последние два месяца. Идей для улучшения плагина WebPage еще много, я мог не учесть какие-то моменты при скачивании страниц, поэтому, если вы наткнетесь на какие-то проблемы с отображением скачанных страниц, то присылайте ссылки, желательно с логом. Логичным продолжением плагина WebPage могло бы стать расширение для Chrome и Firefox, создающие web-страницы, но пока я не буду обещать, что в ближайшее время их сделаю.

Еще хочу поделиться с вами одним полезным хаком в плагине WebPage, который в будущих версиях я собираюсь оформить в виде легко доступной функции. Как вы понимаете, при скачивании страницы с сайта, не происходит никакой авторизации, в отличие от браузеров. Поэтому вы не сможете просто так взять и скачать страницу, если она не доступна всем в интернете (если для ее получения нужно авторизоваться на сайте). Но тут нам может помочь браузер. С помощью него вы можете скачать страницу и сохранить ее на диск, а с помощью WebPage вы можете ее «скачать» уже с вашего жесткого диска. Для этого достаточно в строке ввода ссылки ввести путь до файла в таком виде:

file:///C:/путь_до_файла_HTML/downloaded_file.html

Нужно в начале пути дописать «file:///», а под Windows все обратные слеши (\) заменить на прямые (/).

Как я уже сказал, в будущих версиях я собираюсь добавить кнопку для импорта локальных файлов HTML.


И еще одна новость, которая может заинтересовать линуксоидов, которые пользуются дистрибутивами, отличными от Ubuntu. В качестве эксперимента на странице загрузки нестабильных версий OutWiker я стал выкладывать бинарную сборку, которая должна запускаться под любым 64-битным Linux’ом без необходимости запускать OutWiker из исходников (все необходимые библиотеки уже включены в эту сборку). Поддерживать аналогичные сборки для 32-битных систем, честно говоря, не очень хочется, но если проблем с этими сборками не будет, подумаю над этим.

Создание плагина WebPage — это была вторая крупная задача, которую надо было решить перед релизом OutWiker 1.9 (первой была проверка орфографии). Теперь я начинаю готовить OutWiker к релизу. Предварительно собираюсь выложить еще Release Candidate, а может и не один. Теперь на ближайшие месяц-два я сосредоточусь на причесывании исходников, тестов, вылавливании ошибок и коррекции справки.

Ссылки:

И не забывайте подписываться на страницы OutWiker во Вконтакте, Facebook, Google+ и Telegram, а еще у нас есть сообщество в Живом Журнале.

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.

Пожалуйста, оцените запись

УжасноПлохоТак себеХорошоОтлично (Количество голосов: 4, средняя оценка: 5,00)
Загрузка...

Leave a comment

Subscribe without commenting