Блог им. JenyayOutWiker 1.2.0.322. Что нового

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

Для начала скриншот новой версии, где уже видны некоторые новые фичи.
outwiker_1.2.0_1

И общий список изменений в этой версии.

* Для вики-страниц добавлена возможность ввода формул в нотации TeX (для рендеринга используется mimeTex).
* Ссылка на картинку в виде [[Attach:xxx.png]] или [[http://.../xxx.png]] в вики-страницах вставляет только ссылку на картинку, а не саму картинку.
* Добавлена вики-команда (:childlist:) для вставки списка дочерних заметок.
* Добавлена вики-команда (:attachlist:)для вставки списка прикрепленных файлов
* Добавлена вики-команда (:include:) для вставки содержимого прикрепленных файлов.
* Добавлены вики-команды для вставки ссылок на пользователей Livejournal.com (команда (:ljuser:)) и на ЖЖ-сообщества (команда (:ljcomm:)).
* В меню добавлена функция для преобразования специальных символов HTML (<, > и т.п.) в их HTML-представление.
* Внутри оператора [@… @] при разборе вики-нотации символы "<" заменяются на "<", а ">" — на ">".
* Добавлена возможность задания шаблона для пустой вики-страницы (см. настройки).
* Из вики-нотации удалена команда \\\, так как ее полностью заменяет команда [[<<]] (перевод строки).
* В дереве заметок теперь показывается корень вики.
* Значительно ускорена сортировка страниц по алфавиту.
* Улучшено распознавание ссылок в тексте вики-страниц.
* Улучшено кеширование разбора (парсинга) вики-страниц.
* В заголовках (выделенные нотацией !!,!!! и т.п.) теперь можно использовать и некоторые другие элементы вики-нотации (выделение полужирным, курсив и т.д, а также формулы и вики-команды (:...:)).
* Исправлены ошибки, связанные с удалением и перемещением заметок, которые нельзя удалить/переместить из-за блокировки их директорий.
* Исправлены ошибка, возникавшая при попытке сохранить страницу, директорию которой удалили вручную во время работы программы.
* Исправлено падение программы под Linux при переименовании страницы, содержащей картинки, загружаемые из интернета.
* Другие небольшие исправления и рефакторинг кода (особенно вики-парсера).

Про некоторые из этих пунктов расскажу чуть подробнее. Во-первых, теперь на вики-страницах можно вставлять формулы в нотации TeX. Для рендеринга используется mimeTex. Пользователям под Windows ни о чем заботиться не надо, mimeTex прилагается в программе и лежит в директории tools\\mimetex, а вот под Linux он должен быть установлен в системе. В deb-пакете mimeTex прописан в зависимостях, а если вы используете не Debian-based дистрибутив, то mimeTex надо установить самостоятельно. В принципе, если вам не нужен рендеринг формул, то можете mimeTex и не устанавливать, OutWiker от этого работать не перестанет.

Формулы вставляются между скобками {$… $}. На следующем двух скриншоте виден исходный текст страницы, показанной на самом верхнем скриншоте
outwiker_1.2.0_2

В будущем хотелось бы OutWiker скрестить с программой TeXGui, ну или хотя бы добавить панели инструментов с различными командами Tex.

Во-вторых, я немного подправил поведение некоторых существующих команд вики-нотации. Например, команды вида [[Attach:xxx.png]] или [[http://.../xxx.png]] раньше вставляли картинку и делали ее ссылкой на саму себя. В комментариях как-то правильно заметили, что логичнее в таком случае создавать текстовую ссылку на исходную картинку, тем более, что движок pmWiki, на который я ориентируюсь, так и поступает. В общем, теперь такая запись создает текстовую ссылку.

В-третьих, добавил особый вид вики-команд, в общем виде имеющий формат (:command params:)...(:commandend:), или в упрощенном виде просто (:command params:). В новой версии добавил несколько команд, использующих такую запись.

Теперь на вики-страницах есть возможность автоматически вставлять список дочерних страниц с помощью команды (:childlist:) и список вложенных файлов с помощью команды (:attachlist:).
outwiker_1.2.0_4

Исходный текст приведенной выше страницы выглядит следующим образом:
!!! Вложенные файлы

(:attachlist:)

— !!! Дочерние страницы

(:childlist:)

У этих команд есть дополнительный параметр sort, с помощью которого можно задавать порядок сортировки страниц и файлов. Этот параметр описан в справке.

Также добавил команду (:include:), которая предназначена для вставки содержимого вложенных текстовых файлов. Для этой команды есть дополнительные параметры: encoding для задания кодировки вставляемого файла, htmlescape, который обозначает, что во вставляемом файле все симаволы <, > и & необходимо преобразовать к их HTML-представлению, и wikiparse, показывающий, нужно ли содержимое вставляемого файла обрабатывать вики-парсером. Описание команды (:include:) также есть в справке.

Кстати, по поводу символов <, > и &. Для HTML- и вики-страниц в меню добавил новый пункт «Преобразовать символы в HTML», который как раз и заменяет эти символы на их HTML-представление в выделенном фрагменте. Это может быть особенно полезно для хранения исходников.

А еще теперь такому же преобразованию подвергается текст, окруженный скобками [@… @] (неформатируемый текст, котоырй окружается тегами <PRE> и </PRE>.

Возвращаемся к новым возможностям вики-парсера. Надо сказать, что в будущем у меня есть большое желание дополнить OutWiker большим количеством функций для блоггеров (отправка постов в разные блогосервисы, заливка картинок на хостинги и т.п.), но для начала я просто добавил команды для вставки ссылок на пользователей и сообщества ЖЖ. Я не стал использовать для этих целей теги <lj user> и <lj comm>, как это принято в самом ЖЖ (но не исключаю, что потом добавлю и такую запись), а сделал это в виде команд (:ljuser ...:) и (:ljcomm ...:) соответственно. Работа этих команд также видна на первых двух скриншотах.

Так как эти команды генерируеют непосредственно код HTML, то при этом ссылки на значки человечков и сообществ загружаются с сайта ЖЖ, надеюсь, что СУП (владелец ЖЖ) не собирается менять ссылки на эти картинки. Недавно введенные индивидуальные «головастики» в данный момент не поддерживаются.

Остальные изменения носят скорее косметических характер и исправления ошибок, про них особо писать нечего, достаточно того, что кратко написано в общем списке изменений.

Скачать новую версию можно со страницы программы.
  • +10
  • Jenyay
  • 24 апреля 2011, 18:59

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

  • avatar
  • fog
  • 25 апреля 2011, 16:45
  • #
  • 0
Jenyay, спасибо за пост и проделанную работу.
С удовольствием слежу за развитием проекта.
Очень приятно :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.