Введение
Установщик пакетов — это инструментарий работы со сценариями установки пакетов для МойнМойн, упрощающий установку расширений для МойнМойн.
Данный механизм можно исользовать для сборки дистрибутивов шаблонов, расширений и тем для простой их установки.
1. Установка пакета
Суперпользователь (то есть пользователь, присутствующий в списке параметра superuser конфигурации) вики может загрузить файл пакета на вики и затем установить его, выбрав соответствщее действие в списке прикреплённых файлов. Кроме того, возможна установка пакета посредством командной строки (MoinMoin/packages.py i package.zip).
2. Создание пакета
Существует несколько способов создать пакет. Можно использовать действие «PackagePages» для автоматического создания пакета.
Или же можно сделать это вручную: создать zip-архив, содержащий необходимые файлы и специальный файл MOIN_PACKAGE, являющийся сценарием установки. Данный сценарий содержит по команде на строку и выполняется сверху вниз.
Пример сценария:
MoinMoinPackage|1 ReplaceUnderlay|mypage.txt|ПомощьПоГлавам AddRevision|mypage2.txt|ГлавнаяСтраница InstallPlugin|myparser.py|global|parser|myparser.py
Первая строка указывает, что данный файл является сценарием установки пакета МойнМойн и ревизию используемого языка. Текущая ревизия языка — 1.
Вторая строка заменяет страницу ПомощьПоГлавам в домене underlay содержимым файла mypage.txt
Третья строка добавляет новую версию страницы ГлавнаяСтраница, т. е. изменяет её.
- Четвёртая строка устанавливает новый парсер.
2.1. Поддерживаемые команды
Команды являются регистронезависимыми.
Print|текст
- Печать текста в поток вывода сценария, пользователь сможет увидеть его впоследствии.
IgnoreExceptions|boolean
Указывает, следует ли игнорировать исключительные ситуации (True — игнорировать, False — нет). В случае, если исключения игнорируются, сценарий не прекращает свою работу в случае возникновения таковых.
SetThemeName|тема
- Задаёт имя темы, которая будет изменяться в дальнейшем.
CopyThemeFile|имя_файла|тип|имя_цели
- Копирует файл темы (CSS, PNG, ...) в каталог текущей темы.
Пример: CopyThemeFile|screen.css|css|screen.css
InstallPlugin|имя_файла|видимость|тип|целевое_имя
Копирует файл расширения в файл с указанным именем. Параметр видимость может принимать значение local (в этом случае расширение устанавливается в каталог расширений экземпляра вики ,и доступно только ему) или global (в этом случае расширение устанавливается в каталог с пакетом МойнМойн и доступно всем экземплярам вики, использующим данный код сервера МойнМойн). Параметр тип может принимать значения parser (парсер), macro (макрокоманда), formatter (обработчик выходного формата), filter (фильтр извлечения текста для Xapian), ... (дополнить)
Пример: InstallPlugin|myparser.py|global|parser|myparser.py
AddRevision|имя_файла|имя_страницы|автор|комментарий|незначительность_правки
Создаёт новую версию (используя файл имя_файла) страницы имя_страницы. Параметр автор определяет имя автора правки и является необязательным. Параметр комментарий задаёт комментарий к изменению и является необязательным. Параметр незначительность_правки указывает, помечать ли (в случае указания значения True) правку как незначительную или нет (при задании значения False); параметр является необязательным.
Пример (установки новых шаблонов):
AddRevision|cust.tpl|ШаблонКлиент AddRevision|phone.tpl|ШаблонТелефон
DeletePage|имя_страницы|комментарий
Удаляет страницу с именем имя_страницы, опционально указывая комментарий в качестве причины удаления.
Пример: DeletePage|ГлавнаяСтраница
ReplaceUnderlay|имя_файла|имя_страницы
- Заменяет страницу в underlay. Может использоваться для установки или обновления страниц underlay.
ReplaceUnderlayAttachment|имя_файла_в_архиве|имя_прикреплённого_файла|имя_страницы|автор|комментарий
- Заменяет прикреплённый к странице файл в underlay
Пример: ReplaceUnderlayAttachment|2|chair.jpg|ПомощьПоИзображениям||пример для страницы ПомощьПоИзображениям.
EnsureVersion|версия|количество_строк
- Прерывает сценарий или пропускает указанное количество строк (в случае, если данный параметр указан), если проверка версии не пройдена.
В данном примере в зависимости от версии МойнМойн происходит установка соответствующего парсера:
EnsureVersion|1.3.3|2 InstallPlugin|myparser.py_3|global|parser|myparser.py Exit EnsureVersion|1.3.2 InstallPlugin|myparser.py_2|global|parser|myparser.py
Exit
- Завершение сценария.
InstallPackage|ИмяСтраницы|ИмяФайла
Установка другого пакета, являющегося прикреплённым к странице ИмяСтранцы файлом с именем ИмяФайла
Пример: InstallPackage|ГлавнаяСтраница|MyCoolPlugin.zip
AddAttachment|имя_файла_в_пакете|имя_прикреплённого_файла|имя_страницы|автор|комментарий
Пример: AddAttachment|2_attachment|song.wav|ГлавнаяСтраница|АлександрПрвалов|пример музыкальной композиции.
DelAttachment|имя_файла|имя_страницы|автор|комментарий
Пример: DelAttachment|song.wav|ГлавнаяСтраница|АлександрПривалов|проверочка
RenamePage|имя_страницы|новое_имя|автор|комментарий
- Переименование страницы с необязательным указанием автора и комментария.