Справочник автора/MediaWiki
MediaWiki — это открытый сайтовый движок, на котором работает множество википроектов — посмотрелка, википедия, викитропы и пр.
Серверная часть
Тут для работы движка важны по сути 3 вещи:
- Интерпретатор php — поскольку php это язык, на котором написана сама MediaWiki. Без комментариев.
- СУБД — система управления базой данных. Именно в ней хранятся правки, статьи, история, ники и прочее. По-умолчанию медиавики в качестве СУБД использует MariaDB или MySQL. Так же поддерживает PostgresSQL и SQLite. В старых версиях поддерживается OracleDB.
- Вебсервер с поддержкой PHP (чаще всего Apache2) - предоставляет файлы сайта для пользователей в интернете. Именно он позволяет получить доступ к сайту его посетителям. Он же может вызывать множество проблем если настроен криво.
От «свежести» этих 3 компонентов зависит какую версию движка можно установить.
На что обратить внимание будучи на сервере:
- Файл LocalSettings.php — тут содержатся настройки работы медиавики — подключаемые расширения, настройки, интеграция с другими сервисами. В общем, много всего.
- Папка extensions — сюда закидываются расширения, которые планируется установить.
- Папка maintance — тут содержатся скрипты обслуживания медиавики на php. Обновить структуру БД, поменять пароль, много всего.
Клиентская часть
HTML
HTML – язык гипертекстовой разметки, на котором собственно выводятся все сайты. HTML – это скелет любой страницы, для наведения марафета используется CSS (см. ниже).
В целях безопасности Медиавики поддерживает далеко не все теги. К тому же отдельные расширения добавляют собственные теги, которые отсутствуют в базовом HTML. Например, многим известную связку <nowiki>...</nowiki> .
CSS
CSS – каскадная таблица стилей. По сути это, то что превращает голый текст с дозой списков и ссылок в нечто более красивое.
Медиавики по умолчанию поставляется с 3 стилями для проекта. Можно при желании установить и другие.
Что тут есть:
- MediaWiki:Common.css – здесь можно менять общее оформление, а также создавать новые классы CSS для последующего использования в страницах, шаблонах и пр.
Без расширений и ухищрений CSS задается для элементов либо по ссылке выше, либо прямо в html-теге с помощью атрибута style.
JS
JavaScript – третий кит современной всемирной паутины. Если HТML это скелет, CSS это внешность, то JS может всем этим управлять, ежели воля программиста на то будет.
Что тут есть:
- MediaWiki:Common.js – тут прописывается js-код, который автоматом подгружается для всех пользователей. Именно сюда записываются разнообразные свистоперделки наподобие реализации шаблона Вкладки. Доступ к редактированию по умолчанию строго ограничен.
- Пользовательский js-код – позволяет участникам писать свои скрипты на все случаи жизни. На медиавики отключен по умолчанию, поскольку это очевидная дыра в безопасности.
Jqwery
Vue
Основные понятия
Пространство имён
Все страницы на вики разделены по группам называемыми "пространствами имён". Сделано это чтобы люди читающие страницы могли сходу понимать к чему они имеют отношение. Всего на вики изначально таких групп 18, но ничего не запрещает расширениям добавлять новые. Про пространства имён можно почитать тут. А тут можно найти список уже существующих в различных расширениях пространств имён.
Язык разметки
« | Любая достаточно сложная платформа содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины Common Lisp | » |
— Сжатая цитата для иллюстрации подраздела |
В MediaWiki встроен "язык" позволяющий добавлять различные красивости на страницу - вики-разметка (Wiki markup). Почему в кавычках? Потому что по большому счёту вики-разметка - это надстройка над обычным HTML заменяющая его не понятную большинству нормальных людей систему тегов на более вразумительную (по мнению авторов) систему последовательностей символов. То есть это значит что при большом желании статьи на вики можно форматировать при помощи голого CSS и HTML, что порой приходится делать, когда парсер (часть сайта отвечающая за перевод вики-разметки в HTML и CSS) даёт сбои. Да боже, это даже используется в этом абзаце!
Относительно полный гайд по разметке можно почитать в официальном руководстве.
Шаблоны
Иногда возникают ситуации когда нужно один и тот же кусок использовать в нескольких местах или разбить что-то больше на маленькие. В нормальных языках программирования для этого используются функции, в вики-разметке используются шаблоны. Шаблон представляет собой статью находящуюся в специально выделенном пространстве имён и подготовленную специальным образом для вставки.
Список того что тут можно использовать:
- Разметка, HTML и CSS. Так как шаблон является обычной статьёй, то он поддерживает всё тоже самое что и обычная статья.
- Функции парсера. Так же фича которую можно использовать в обычных статьях, но чаще находит своё применение именно здесь.
- Параметры. При помощи специальных конструкций можно оставлять поля в которые при размещении шаблона можно указать нужный вам кусок. Почти ничем не ограничены и могут подставляться буквально целые куски разметки, главное чтобы итоговый результат для парсера сошёлся.
- На нашей вики используется расширение фунций парсера. Математические действия, сравнения, отработка исключений, сложные условия и многое другое. Мощный инструмент позволяющий создавать гараздо более комплексные шаблоны чем обычно.