Установка пакетов
Установщик пакетов — это инструментарий работы со сценариями установки пакетов для МойнМойн, упрощающий установку расширений для МойнМойн.
Данный механизм можно исользовать для сборки дистрибутивов шаблонов, расширений и тем для простой их установки.
Установка пакета
Суперпользователь (то есть пользователь, присутствующий в списке параметра `superuser` конфигурации) вики может загрузить файл пакета на вики и затем установить его, выбрав соответствщее действие в списке прикреплённых файлов. Кроме того, возможна установка пакета посредством командной строки (`MoinMoin/packages.py i package.zip`).
Создание пакета
Существует несколько способов создать пакет. Можно использовать действие «PackagePages» для автоматического создания пакета.
Или же можно сделать это вручную: создать zip-архив, содержащий необходимые файлы и специальный файл `MOIN_PACKAGE`, являющийся сценарием установки. Данный сценарий содержит по команде на строку и выполняется сверху вниз.
Пример сценария:
MoinMoinPackage|1 ReplaceUnderlay|mypage.txt|ПомощьПоГлавам AddRevision|mypage2.txt|ГлавнаяСтраница InstallPlugin|myparser.py|global|parser|myparser.py
Первая строка указывает, что данный файл является сценарием установки пакета МойнМойн и ревизию используемого языка. Текущая ревизия языка — 1.
Вторая строка заменяет страницу ПомощьПоГлавам в домене underlay содержимым файла `mypage.txt`
Третья строка добавляет новую версию страницы ГлавнаяСтраница, т. е. изменяет её.
- Четвёртая строка устанавливает новый парсер.
Поддерживаемые команды
Команды являются регистронезависимыми.
- `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|имя_страницы|новое_имя|автор|комментарий`
- Переименование страницы с необязательным указанием автора и комментария.