Типы конфигурационных файлов
Для изменения того, как moinmoin себя ведёт и выглядит, Вы можете настроить его, редактируя конфигурационные файлы:
- Конфигурация движка Wiki
- файл чаще всего называется wikiconfig.py, но может иметь и другое имя
- в этом файле находятся классы конфига движка вики
- он написан на Python
- Конфигурация фреймворка
- расположена в том же файле, что и конфигурация движка вики
- содержит некоторые настройки в ВЕРХНЕМ РЕГИСТРЕ в конце файла. Это конфигурация фреймворка (Flask и его расширений)
- он написан на Python
- Конфигурация логирования
Меняйте понемногу и храните резервные копии
Начните с простого конфига, поставляемого с moin и меняйте его понемногу и каждый раз проверяйте работоспособность.
Если Вы не знакомы с форматом файла конфигурации, храните копию последнего работающего конфига на случай, если Вы вдруг сделаете трудно отлавливаемую ошибку.
Редактирование файлов Python
Когда Вы редактируете файлы Python, будьте осторожны с отступами, используйте лишь отступы, кратные 4 пробелам и не используйте табуляцию.
Кроме того, будьте внимательны к синтаксису вообще; это должен быть корректный код на Python, иначе Вы получите ошибку при попытке загрузки конфигурации. В таком случае прочитайте внимательно сообщение об ошибке, в нём скорее всего будет содержаться номер строки и описание проблемы. Если у Вас не получается решить проблему — восстановите из резервной копии последний рабочий конфиг.
Зачем использовать Python для конфигурации?
Вы, конечно, можете удивиться, почему мы используем код Python для конфигурации. Одна из причин в том, что это очень мощный язык. Moinmoin сам по себе разработан на Python и использование чего-либо другого потребовало бы больше времени для введения новой функциональности.
wikiconfig.py
wikiconf.py выглядит таким образом:
# -*- coding: utf-8 -*-
from MoinMoin.config.default import DefaultConfig
class Config(DefaultConfig):
# некоторый комментарий
sometext = u'your value'
somelist = [1, 2, 3]
MOINCFG = Config # Flask любит только верхний регистр
SOMETHING_FLASKY = 'foobar'
Давайте разберём это строка за строкой:
- Мы объявляем кодировку конфигурационного файла; убедитесь, что ваш редактор использует ту же самую кодировку, особенно, если Вы используете не ASCII символы
- импортируем класс DefaultConfig из кода moin; в нём содержатся значения по умолчанию для всех настроек, что экономит ваш труд, так как Вы должны указать тут только те параметры, которые Вы хотите переопределить
- пустая строка для лучшего восприятия
- определяем новый класс Config, дочерний классу DefaultConfig. Это и есть настройки движка вики и он переопределяет значения из DefaultConfig.
- знак # указывает на комментарий в вашем конфиге. Эта строка, как и последующие строки в пределах Config имет отступ в 4 пробела, так как Python определяет блоки по отступам
- определяем атрибует Config'a c именем sometext и значением u'your value', где «u» указывает на то, что это строка юникода
- определяем атрибует Config'a c именем somelist и значением [1, 2, 3], это список с эементами 1, 2 и 3
- пустая строка для лучшего восприятия
- специальная строка «MOINCFG = Config» должна иметь именно такой вид по техническим причинам
- код в верхнем регистре находится в конце файла, вне класса Config и является настройкой фреймворка; обычно это что-то для Flask'a или его расшире