Установка пакетов

Установщик пакетов — это инструментарий работы со сценариями установки пакетов для МойнМойн, упрощающий установку расширений для МойнМойн.

Данный механизм можно исользовать для сборки дистрибутивов шаблонов, расширений и тем для простой их установки.

Установка пакета

Суперпользователь (то есть пользователь, присутствующий в списке параметра 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|имя_страницы|новое_имя|автор|комментарий

    • Переименование страницы с необязательным указанием автора и комментария.