Open SourceOutWiker 1.4.0

Выход очередной версии (1.4) программы OutWiker немного задержался, но вот, наконец, эту версию можно считать завершенной, и постепенно приступать к разработке следующей версии. Для тех, кто не знает, что это за программа, OutWiker — это кроссплатформенная программа с открытыми исходниками для хранения заметок в виде дерева. Одно из отличий OutWiker'а от других подобных программ состоит в том, что все заметки хранятся не в одном файле, а в виде вложенных папок. Кроме того, к каждой заметке можно прикреплять любое количество файлов, а теперь программа поддерживает и плагины. Более подробно о программе вы можете прочитать по приведенной выше ссылке. Что нового на этот раз? Краткий список изменений выглядит следующим образом:

* Добавлено автосохранение заметок по таймеру (интервал сохранения задается в настройках).
* Добавлена проверка изменения текста заметок сторонними программами.
* Для HTML-страниц добавлена кнопка включения/выключения автоматического переноса строк.
* Версия под Linux теперь устанавливается в /usr, а не в /opt. Теперь из консоли программу можно вызывать с помощью команды ''outwiker''.
* Улучшена обработка викисинтаксиса, касающегося создания списков.
* Теперь поиск по страницам ищет искомую фразу в именах прикрепленных файлов и в названиях тегов.
* Исправления ошибок и небольшие улучшения интерфейса.
* Программа теперь тестируется только под Python 2.7.

А теперь про изменения более развернуто.
outwiker_1.4.0_01
outwiker_1.4.0_02



Плагины
Самое заметное изменение — это, конечно, добавление поддержки плагинов. Здесь работа еще только началась, API для работы плагинов на все случаи жизни еще не предусмотрены, в первую очередь я ориентировался на плагины, которые могут добавлять новые вики-команды, изменять контекстные меню для дерева заметок и трея, добавлять свои пункты меню и кнопки на панель инструментов. Кроме того, плагины могут добавлять свои окна настроек в общий диалог с настройками. Плагины можно включать и выключать из окна настроек (Правка — Параметры… — Расширения) без перезапуска программы.

outwiker_1.4.0_06

К этому релизу я подготовил два плагина, которые можно найти на странице Плагины для программы OutWiker. Эти плагины добавляют новые команды в вики-синтаксис. Первых плагин, который называется Source, предназначен для раскраски исходных текстов программ. Пример его работы показан на следующем рисунке:

source_scr
Этот плагин использует замечательную библиотеку Pygments, которая умеет раскрашивать исходники на очень большом количестве языков программирования (библиотека прилагается к плагину, дополнительно ничего устанавливать не надо). Чтобы увидеть список поддерживаемых языков, зайдите в настройки плагина (Правка — Параметры… — Source [Расширение]), там есть даже поддержка языка Brainfuck. Другой плагин под названием Style позволяет с помощью викикоманды (:style:) добавлять к странице пользовательские стили CSS:

style_scr

Работает этот плагин так же, как и настройка глобальных стилей страниц (Правка — Параметры… — Интерфейс — Просмотр), но действует только на одну страницу.

outwiker_1.4.0_04
outwiker_1.4.0_06




Кроме перечисленных плагинов есть еще несколько расширений в репозитории с исходниками, но они особой практической ценности не имеют, и будут интересны только тем, кто решит написать свой плагин. Для установки плагинов необходимо распаковать скачанный архив в папку plugins рядом с запускаемым файлом (в случае, если вы используете OutWiker под Windows в портабельном режиме) или в папку .outwiker\plugins в директории пользователя (под Windows XP — C:\Documents and Settings\USERNAME\.outwiker\plugins, под Linux — ~/.outwiker/plugins).

Обратите внимание, что каждый плагин — это папка с файлами, именно эту папку и нужно копировать в plugins. В окне настроек Правка — Параметры… — Расширения вы можете отключать плагины без удаления их из папки plugins. Про то, как писать плагины я здесь говорить не буду, на эту тему надо будет написать отдельную статью, скажу только, что здесь я пошел по наиболее очевидному пути, который я когда-то описывал в статье Делаем плагины на Python с небольшими изменениями.

В данный момент я не дам голову на отсечение, что API для работы с программой не будут меняться от версии к версии. Разумеется, те части API, что уже используются плагинами, я буду стараться не трогать, а плагины поддерживать в актуальном состоянии. Если вы хотите, чтобы я разместил ваш плагин в списке плагинов на сайте (разумеется, со ссылкой на вас), то присылайте их с описанием мне на почту. А если к ним будут прилагаться Unit-тесты, то это вообще замечательно, тогда я их смогу включить в общий репозиторий с исходниками, чтобы следить, не сломает ли очередное изменение ваш плагин.
Другие изменения
Давайте теперь коротко пробежимся по другим нововведениям. Во-первых, добавлено автосохранение заметок по таймеру, по умолчанию заметка автосохраняется через каждые 3 секунды, но этот интервал можно менять в настройках. Честно говоря, я не очень видел смысл в добавлении этой возможности, потому что заметки и так сохранялись при каждом чихе (при переключении между ними, при переключении в режим просмотра, при потери фокуса окном OutWiker). Но, раз многие просили — сделал, тем более, что хуже от этой возможности не стало (хотя это добавило некоторые заботы при программировании). Но за это убрал кнопку «Сохранить» с панели инструментов, а то некоторые пользователи из-за наличия этой кнопки думали, что заметки надо сохранять вручную. Соответствующий пункт меню и горячую клавишу Ctrl+S оставил.

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

page_edit


Для HTML-страниц была добавлена кнопка, которая включает/выключает автоматический перенос строк. Здесь имеется в виду, что раньше все одиночные переносы строк заменялись на тег <BR>, а двойные переносы строк — тегом <P>. Теперь для каждой страницы можно включать/выключать такое поведение. Если автоматический перенос строк отключен, то теги <BR> и <P> надо будет расставлять самостоятельно.

Что касается версии под Linux, то теперь программа из deb-пакета устанавливается не в /opt, а в /usr/share/… В том числе в /usr/bin/ добавлен скрипт outwiker, который теперь можно вызывать отовсюду. Таким образом, теперь OutWiker больше удовлетворяет стандарту Linux для распределения файлов (хотя, надо признать, что идея с папкой /opt мне нравится). Остальные изменения носят скорее корректирующий характер, особо про них говорить нечего.

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

Кроме того, теперь вы можете оставлять свои пожелания не только в комментариях на странице программы, но и на специально заведенной для этой цели страницы на outwiker.reformal.ru. Там же вы можете голосовать за пожелания, высказанные другими пользователями, чтобы мне было видно, каких именно возможностей не хватает в программе. Сейчас, например, там побеждает «Создание HTML-страниц из страниц в интернете» (a la Evernote), затем идут экспорт заметок в PDF и HTML, следом идет создание PPA-репозитория для Ubuntu. Но вы можете изменить положение дел с помощью голосования. Там у нас голосование честное. :)

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

PS. Отдельно хочется поблагодарить [info]linda_kaioh, которая нашла большое количество багов в этой версии, и Юрия (aka Cuprum) за иконки браузеров и операционных систем, которые были добавлены в набор иконок программы.
  • +10
  • Jenyay
  • 07 декабря 2011, 22:48

Комментарии (2)

  • avatar
  • ostin
  • 08 декабря 2011, 16:36
  • #
  • 0
Как установить outWkier не в debain-based сисетмах?
зачем в tarball-е с исходниками файлы 'pyc', dll-ки и exe-ха?
> Как установить outWkier не в debain-based сисетмах?

Распаковать исходники и запустить python runoutwiker.py

> зачем в tarball-е с исходниками файлы 'pyc', dll-ки и exe-ха?

pyc случайно затесались, а dll-ки и exe-шка нужны для сборки виндовой версии. Вдруг кто-то захочет под виндой запускать из исходников.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.