OutWiker 3.0.0.868 unstable
Обычно я стараюсь выкладывать новые нестабильные версии OutWiker примерно раз в месяц, но иногда работа над очередной версией затягивается. Одной из причин такой задержки в этот раз стало то, что я внезапно для себя взялся за задачу, которую до этого планировал выполнить после релиза стабильной версии OutWiker 3.0, а потом решил, что сейчас для этой задачи самое время, потому что она ломает совместимость со старыми версиями плагинов.
Исторически так сложилось (в процессе нескольких итераций и экспериментов), что файл манифеста плагинов до сих пор содержал помимо информации, необходимой для загрузки плагинов (название плагина, описание, ссылки на сайт и т.п.), также список изменений всех версий плагина со ссылками на скачивание. Это было сделано в угоду плагину UpdateNotifier, который должен оповещать пользователей о выходе новых версий OutWiker и плагинов . Формат файла манифеста был плохо продуман, поэтому, например, при выкладывании новых версий плагинов некоторую информацию приходилось дублировать для русского и английского языка.
Кроме того, устарела сама идеология установки плагинов, которая требует, чтобы пользователь вручную скачивал и распаковывал плагин. Сейчас все приличные программы могут сами скачивать нужные плагины с сайта и обновлять их в случае необходимости. Последние две проблемы были практически решены благодаря изменениям, которые внес Владимир Тубольцев в плагин UpdateNotifier, он как раз добавил скачивание плагинов с сайта. Но все равно оставалась проблема — как сделать так, чтобы программа не обновляла плагины, если новые версии не совместимы с установленной версией OutWiker. Или как обновить плагин до последней версии, которая еще может работать с версией OutWiker, установленной у пользователя.
С файлом манифеста плагинов надо было что-то делать. В результате я сломал плагин UpdateNotifie. Мне очень не нравился подход, который был реализован в UpdateNotifier, потому что этот плагин в итоге стал влиять на формат файла манифеста плагина. К тому же, судя по общению с пользователями, у меня сложилось впечатление, что плагин UpdateNotifier не особо нужен, поскольку те, кто использует нестабильную версию OutWiker, скачивают дистрибутив со всеми плагинами, и поэтому обновление отдельных плагинов для них не актуально. То же самое относится к пользователям Linux, потому что в пакет snap включены все плагины.
Поэтому я смело взялся за переделку формата манифеста плагинов. Я не буду здесь описывать новый формат, скажу только, что он стал намного компактней из-за того, что из него выкинул список изменений всех версий плагина. А сам список изменений перенес в отдельный файл, который пользователю не устанавливается за ненадобностью. Эти изменения достаточно серьезные, поэтому пришлось увеличить мажорную версию внутреннего API, что повлекло за собой модификацию всех плагинов (она касалась в основном только файла манифеста, хотя заодно я удалил некоторый устаревший код). Поэтому для новой версии OutWiker будут работать только новые версии плагинов. Честно говоря, есть у меня небольшое желание до релиза стабильной версии еще раз поломать совместимость с плагинами, но я еще не определился, насколько это желание сильное.
Выше я описал, каким я хотел бы видеть процесс обновления и установки плагинов. На данный момент до этого еще далеко, но в то же время у меня нет желания сильно переделывать UpdateNotifier под новый формат файла манифеста и списка изменений. К тому же была велика вероятность, что если изменить имеющийся сейчас способ обнаружения новых версий, то старые версии UpdateNotifier перестанут работать. Тут нужен полноценный сервер со своим API, которым бы пользовался UpdateNotifier. Я хочу взяться за его реализацию, но в данный момент его пока нет. Поэтому сейчас плагин UpdateNotidier я не стал обновлять и добавлять в сборку к остальным плагинам. Старая версия UpdateNotifier в новой версии OutWiker не будет загружаться.
Это было самое крупное изменение в новой версии, но были реализованы и более мелкие улучшения. Например, в плагин HackPage я добавил две новые возможности. Теперь с его помощью можно немного жулить и изменять дату / время создания и изменения выбранной страницы. Новые пункты меню появились в контекстном и главном меню.
После выбора соответствующего пункта меню откроется диалог для выбора даты и времени.
Плагин WebPage теперь работает более умно, и если в заголовке страницы есть запрещенные символы (например, *, /, \ и т. п.), то он не просто заменяет из символом подчеркивания, как было раньше, а добавляет к новой странице псевдоним, который содержит полноценный заголовок без замен символов. То есть теперь в имени папке запрещенных символов по-прежнему нет, но пользователю OutWiker это не заметно — в дереве отображается заголовок со всеми символами.
В настройках OutWiker появился новый параметр, который задает шаблон для имени новой страницы. То есть, если вы используете OutWiker в качестве дневника или создаете заметки с именами, привязанными к датам, то вы можете настроить такой шаблон, чтобы по умолчанию заголовок содержал текущую дату.
Кроме того, в новой версии OutWiker были исправлены небольшие шероховатости интерфейса, связанные с выбором значков страницы, и подчищен код. В ближайшей версии я хочу продолжить заниматься расчисткой кода без добавления новых возможностей и переделать систему сборки программы.
На этом пока все. Жду от вас сообщения о найденных ошибках.
OutWiker с социальных сетях:
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
Александр:
Попробовал Вашу программу и сразу нарвался на пару «неприятностей». Наверняка решаемых. 🙂
1. Интерфейс. У меня на винде-7 локаль — «Израиль». Интерфейс английский. Для программы я выбрал такой же язык, но весь интерфейс показывается в RtL, хотя должен быть, как и всех остальных программ в соответствии с выбранным языком интерфейса, а не дефолтной локалью.
2. отсутствует возможность задавать формат заголовка страниц(цвет, фонт и т.п.), чтобы было видней где кончается один раздел документов и начинается следующий.
3. Сначала огорчился отсутствию глобального поиска, но потом отыскал его в неожиданном (для меня) месте: при наличии меню «поиск» в меню — Инструменты.
С уважением за Ваш труд,
31 октября 2019, 10:20 дпАлександр Кац.
Jenyay:
Добрый день, Александр. Спасибо за комментарии.
1. Локализация — это вообще скользкая тема, особенно когда нужно учесть такие особенности как RTL. Постараюсь воспроизвести проблему.
31 октября 2019, 11:16 дп2. Вы имеете в виду заголовки в дереве заметок? Если да, то такая возможность есть в планах, но скорее всего в будущей версии (после выхода версии 3.0), потому что это потребует больших изменений, которые все равно собираюсь сделать.
3. Ок, приму к сведению.