welcome: please sign in

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

location: ПомощьПоТемам

Темы

МойнМойн использует систему подключаемых тем, которая позволяет гибко настраивать внешний вид и поведение без изменения основного кода сервера. Пользователь может выбирать используемую тему из списка предустановленных1 в своих настройках (это может быть недоступно в случае, если администратор принудительно указал определённую тему и запретил возможность её смены).

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

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

Обычно для установки темы недостаточно просто скопировать содержимое архива в каталог themes. Для установки настоятельно рекомендуется следовать инструкциям, указанным автором темы. Обычно, затрагиваются два места:

  1. Каталог, где хранятся статические файлы темы.
    • Сюда следует поместить каталог с файлами темы (содержащий подкаталоги css/, img/ и, возможно, некоторые другие).

  2. Каталог data/plugin/theme, где хранятся исполняемые части тем.

    • Сюда следует поместить скрипт (он имеет то же имя, что и тема и расширение «.py»).

После выполнения указанных действий тема должна быть доступна для использования. Возможно, для того, чтобы она появилась в списке доступных тем потребуется очистить кэш или повторно войти в вики. Для опций конфигурации см. КакНастраивать.

Изменение тем

Можно свободно изменять предустановленные темы, но лучше использовать копию. Для её создания необходимо выполнить следующее (здесь в качестве примера используется тема modern):

  1. Создать копию каталога modern в каталоге со статическим содержимым и назвать её, например, mytheme.

  2. Скопировать скрипт темы MoinMoin/theme/modern.py в data/plugins/theme/mytheme.py.

  3. Отредактировать файл mytheme.py, как минимум, сменив значение переменной namename = "modern" на name = "mytheme").

  4. После проделанных действий тема должна стать доступной. Если это не так (например, если используется постоянно запущенный процесс МойнМойн), необходимо перезапустить HTTP-сервер.

  5. После этого можно начать редактировать файлы в каталоге статического содержимого темы.

Местонахождение каталога со статическими файлами зависит от настроек и установки вики:

Лучший способ изменить визуальное оформление вики — унаследоваться от одной из тем МойнМойн по умолчанию и изменить только необходимые сущности. Это поможет избежать работы по копированию новых стилей, добавленных во время разработки в изменённые таблицы стилей. Чтобы реализовать эту схему, достаточно использовать директиву CSS @import следующим образом:

   1 @import url("/moin_static190/modern/css/common.css");
   2 
   3 h1,h2,h3,h4,h5 {
   4     background-color: #88CCFF;
   5 }

В первой строке происходит импортирование общих для разных способов представления (для экрана, для печати...) классов по умолчанию, распространяемых в составе дистрибутива МойнМойн. Возможно, необходимо поменять URL в соответствии с конфигурацией вики и/или версией МойнМойн.

В последующих строках происходит непосредственно задание собственных стилей, конкретно изменение цвета фона заголовков. Вот и всё.

За дополнительной информацией можно обратиться в вики css-discuss.

Красивая идея, позволяющая сделать CSS редактируемыми на вики, показана на вики esw.w3.org.

Параметры конфигурации вики

Параметр

Значение по умолчанию

Описание

page_footer1

""

HTML-разметка, которую необходимо поместить перед стандартным подвалом страницы.

page_footer2

""

HTML-разметка, которую необходимо поместить после стандартного подвала страницы.

page_header1

""

HTML-разметка, которую необходимо поместить перед стандартной шапкой страницы, но после открывающего тега <body>.

page_header2

""

HTML-разметка, которую необходимо поместить после стандартной шапки страницы (и открывающего тега <body>).

stylesheets

[(media, csshref), ...]

Список кортежей вида (способ показа, ссылка CSS) для вставки после CSS темы, но перед пользовательской.

html_head

""

Дополнительные теги в <head> для всех страниц.

html_head_posts

robots: noindex,nofollow

Дополнительные теги в <head> для страниц, возвращаемых в ответ на POST-запросы.

html_head_index

robots: index,follow

Дополнительные теги в <head> для немногочисленных индексных страниц.

html_head_normal

robots: index,nofollow

Дополнительные теги в <head> для большинства обычных страниц.

html_head_queries

robots: noindex,nofollow

Дополнительные теги в <head> для страниц, возвращаемых в ответ на GET/HEAD-запросы с указанным параметрами в URL (например, для страниц вызова действий).

Можно настроить внешний вид вики, задавая следующие параметры конфигурации (применимо только к стандартным стилям, для других стилей параметры могут отличаться):

  1. <head>

    • config.html_head добавляется в тег <head> для всех страниц

    • config.html_head_index, config.html_head_normal, config.html_head_queries, config.html_head_posts добавляются в зависимости от вида страницы (см. выше)

  2. <body>

    • Можно использовать фрагменты HTML-разметки для дополнения страниц, генерируемых МойнМойн (далее указаны возможности для стандартных тем, другие темы могут отличаться в плане конфигурации) — далее показана последовательность, в которой формируется страница

    • Шапка страницы:
      • config.page_header1

      • config.logo_string – можно использовать для задания собственного логотипа.

      • Форма поиска.
      • Имя пользователя (расположено на боковой панели в теме rightsidebar), имя ИнтерВики, заголовок страницы.

      • Последние посещённые страницы (page trail).
      • Панель иконок действий (используется только в теме classic).

      • config.navi_bar – список страниц, которые будут добавлены в шапку. Если значение равно «None», то панель навигации добавлена не будет. В теме rightsidebar список располагается на боковой панели.

      • Сообщение
      • config.page_header2 (в теме rightsidebar эта разметка будет добавлена перед разметкой боковой панели и сообщением)

    • Содержимое страницы
    • Подвал:
      • Информация о странице
      • config.page_footer1

      • Панель редактирования (в теме rightsidebar она находится на боковой панели), форма поиска (только в теме classic), действия (только в теме classic)

      • config.credits

      • Информация о версии
      • config.page_footer2

  3. Пользователь вики может переопределять стили путём задания URL собственной CSS в настройках учётной записи — эта CSS будет загружена после CSS темы, что позволяет переопределить всё, что необходимо. Файл CSS должен быть в кодировке UTF-8 (ASCII также подходит, так как является подмножеством UTF-8).

page_header1, page_header2, page_footer1 и page_footer2 могут быть функциями от одного аргумента, которым передаётся параметр «request» (также необходимо принимать произвольные именованные аргументы для совместимости с будущими возможными изменениями).

Создание новой темы

При желании можно также создать новую тему. Лучший способ сделать это — скопировать существующую тему (например, modern). После чего необходимо переименовать скрипт и изменить параметр name в нём. Можно также написать некую логику на языке Python в рамках этой темы, создав новый пользовательский интерфейс. При обновлении МойнМойн новые темы не затрагиваются — они будут работать с новой версией либо сразу, либо после небольших изменений, связанных с изменениями в API. Для дополнительной информации см. MoinMoin:MoinDev/ThemeDevelopment.


  1. В установке МойнМойн 1.9 по умолчанию доступны темы «classic», «modern», «modernized», «modernized_cms», «rightsidebar» (1)