OutWiker 2.0.0.802 и плагин Markdown
Сегодня выложил новую нестабильную версию OutWiker с очень важными изменениями.
Во время разработки OutWiker я очень бережно отношусь к обратной совместимости. Программа не должна падать или выдавать непонятные пользователю сообщения об ошибках после очередного обновления как самой программы, так и плагинов. Однако в процессе развития иногда хочется переделать какой внутренний участок кода, который уже может использоваться каким-нибудь плагином. Момент перехода от версии 1.x к 2.0 — удачное время, когда можно немного поломать обратную совместимость, чтобы облегчить дальнейшее развитие. Но если у пользователей установлены плагины для старых версий программы, то программа в любом случае не должна падать, плагины должны просто отключаться, и при этом еще сообщать пользователю причину своего отключения. Именно это я и сделал в данной версии.
Я не буду описывать здесь все подробности работы с плагинами (в будущем надо будет переписать статью про создание плагинов, она теперь местами устарела), скажу лишь только, что теперь у каждого внутреннего компонента OutWiker есть номер версии, а каждый плагин теперь должен иметь файл plugin.xml, в котором среди прочей информации и плагине (в основном не обязательной) должны быть требования к версиям этих компонентов.
При этом появилась такая особенность загрузки плагинов: если, например, компонент имеет версию 1.4, а плагин требует версию 1.3, то все будет работать, а если плагину требуется версия компонента 1.5, то плагин будет отключен, но будет показан в списке плагинов, и если его выбрать в списке, то мы увидим сообщение о том, что плагин рассчитан на более новую версию OutWiker.
Но может быть и обратная ситуация, когда плагин требует компонент версии 1.5, а в OutWiker этот компонент имеет версию 2.0 (увеличение первой цифры значит, что были внесены изменения, ломающие обратную совместимость). В этом случае плагин также будет отключен, а в его описании будет написано, что плагин не рассчитан на такую свежую версию OutWiker, и нужно обновить плагин.
Плагин может заявлять, что умеет работать с несколькими версиями одного и того же компонента. Но обо всех подробностях я напишу в отдельной статье для разработчиков плагинов.
Как это ни печально, но при добавлении такой особенности загрузки плагинов, все старые плагины будут отключены, как устаревшие. Но это не страшно, потому что я их уже все обновил, чтобы они могли работать, как в старых, так и в новых версиях OutWiker. Для добавления совместимости нужно было только исправить или создать файл plugin.xml, не трогая основной код. Единственное исключение — плагин WebPage, который теперь существует в двух версиях — для OutWiker 1.9 и для 2.0.
А теперь то, что подтолкнуло меня на такие изменения — плагин Markdown. Именно при его создании возникло желание сильно упростить один внутренний компонент, который оставался нетронутым несколько лет.
Уже давно меня просили сделать страницу, разметка которой задается с помощью языка Markdown. Наконец, готова первая версия, в которой есть поддержка базового языка Markdown без каких-либо расширений этого языка, их я собираюсь добавлять в следующих версиях. Поскольку сам я этот язык недолюбливаю (на мой взгляд другие викиязыки более логичные), то жду от вас предложения, какие расширения нужны в первую очередь. Пока я собираюсь ориентироваться на поддержку возможностей, используемых на github.
После установки плагина Markdown, страницу в этом формате вы можете создавать, как страницы встроенных типов.
В редакторе есть подсветка основных элементов языка Markdown: заголовков, ссылок, выделение текста полужирным шрифтом и курсивом.
В режиме просмотра эта страница выглядит следующим образом:
Стили оформления также работают и для Markdown-страниц.
Для основных элементов языка Markdown на панель инструментов выведены кнопки.
На этом пока все, еще раз напоминаю, что после обновления нужно будет обновить и используемые плагины.
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
Leave a comment