MediaWiki - Настройка и расширения: различия между версиями

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску
Строка 52: Строка 52:


<syntaxhighlight lang="php">$wgFavicon = "$wgStylePath/common/images/favicon.ico";</syntaxhighlight>
<syntaxhighlight lang="php">$wgFavicon = "$wgStylePath/common/images/favicon.ico";</syntaxhighlight>
==== Изменение навигационного блока ====
Навигационный блок, расположенный на левой части каждой страницы вики, можно изменять: удалять существующие пункты, добавлять свои. Делается это на спецстранице <code>вашавики.net/index.php/MediaWiki:Sidebar</code>


=== Разрешение загрузки изображений ===
=== Разрешение загрузки изображений ===

Версия от 12:37, 23 сентября 2012

Статья посвящена всему тому, с чем нам пришлось столкнуться в процессе использования MediaWiki. Такая своеобразная записная книжка.

Речь пойдёт об MediaWiki, размещённой на Linix-сервере. Подробнее о версиях установленного ПО можно узнать здесь.

Термины и сокращения

BPoD

Blank Page of Death (BPoD) - белая страница смерти, когда вместо страницы вики браузер выдаёт лишь пустую страницу, на которой нет вообще ничего. Причиной может быть:

  • неверные настройки в файле LocalSettings.php;
  • некорректно работающее свежеустановленное расширение.

Нулевая правка

Null edit - это если зайти в режим Правки страницы и тут же нажать Записать страницу (Save page), хотя изменений никаких внесено не было. Как бы ни казалось на первый взгляд, но это вовсе не бессмысленное действие.

Нулевая правка принуждает вики пересобрать страницу из исходников и показать её самую последнюю версию. Так вы можете быть уверены, что перед вами не версия из кэша, а актуальная версия страницы.

Также это вызывает сиюминутную категоризацию страницы. Это полезно, когда категория страницы была изменена одним из используемых ей шаблонов, потому как сама вики в этом случае обновит категорию страницы лишь через некоторое время.

Настройка MediaWiki

В основном, вся проводится правкой файла LocalSettings.php. Он находится в корневой директории сайта.

Первичная настройка

Задание названия

В файле LocalSettings.php задать переменную:

$wgSitename = "Ваше название вики";

Установка логотипа

Логотип можно загрузить через интерфейс самой вики, но тогда он окажется доступным для изменения, потому лучше положить его в каталог к дефолтному: skins/common/images/. Однако, тогда при обновлении MediaWiki логотип сбросится вновь на дефолтный или вовсе не будет отображаться.

Логотип должен быть квадратным, с размерами 135x135. Чтобы он смотрелся аккуратно и не выделялся своим фоном на фоне страниц вики, нужно сделать ему прозрачный фон.

После того, как логотип загружен на сервер, нужно задать следующую переменную в файле LocalSettings.php:

$wgLogo = "$wgStylePath/common/images/vashlogotip.gif";

Установка иконки

Иконка сайта отображается на вкладке браузера, благодаря чему его (сайт) проще отыскать в массе открытых вкладок.

Загружать иконку рекомундуется туда же, куда и логотип. Размеры её должны быть 16x16, а формат - ICO. Так же можно сделать ей прозрачный фон. Так же следует помнить, что после обновления MediaWiki она может сброситься на дефолтную.

Имя рекомендуется использовать стандартное: favicon.ico.

После того, как иконка загружена на сервер, нужно задать следующую переменную в файле LocalSettings.php:

$wgFavicon = "$wgStylePath/common/images/favicon.ico";

Изменение навигационного блока

Навигационный блок, расположенный на левой части каждой страницы вики, можно изменять: удалять существующие пункты, добавлять свои. Делается это на спецстранице вашавики.net/index.php/MediaWiki:Sidebar

Разрешение загрузки изображений

Чтобы пользователи могли загружать изображения, а также для работы некоторых расширений необходимо внести в LocalSettings.php следующие изменения:

Разрешить загрузку файлов на сервер:

$wgEnableUploads = true;

Установить разрешённые расширения файлов:

$wgFileExtensions = array('png', 'gif', 'jpg', 'jpeg', 'svg');

Также для работы некоторых расширений может потребоваться редактор изображений ImageMagick:

$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert"; # у вас может находиться в иной директории

Изменение стиля wikitable

По умолчанию у класса таблиц wikitable ничтожно маленькое значение отступа от границ ячейки, из-за чего таблицы не радуют глаз. Для установки собственного значения отступа необходимо внести изменения в файл skins\common\shared.css. Скажем, 5px будет достаточно:

table.wikitable {
	margin: 1em 1em 1em 0;
	background: #f9f9f9;
	border: 1px #aaa solid;
	border-collapse: collapse;
	color: black;
}
.wikitable th, .wikitable td {
	border: 1px #aaa solid;
	padding: 5px;
}

Если у вас другая версия MediaWiki, код класса может выглядеть иначе, но суть одна - нужно изменить значение параметра padding.

Установка счётчиков

Расширения MediaWiki

Они же extensions. Позволяют расширить функционал вики. Например, добавить поддержку TeX формул и подсветку синтаксиса фрагментов исходного кода на том или ином языке программирования.

Устанавливаются все одинаково:

  1. загрузить архив с расширением:
  2. распаковать его в каталог extensions корневого каталога;
  3. в файле LocalSettings.php из корневого каталога вики добавить строку подключения расширения.

Выполнить эти операции можно как по FTP, так и через SSH.

Подсветка синтаксиса

У нас используется SyntaxHighlight GeSHi. Установка ничем не примечательная, однако на версии MediaWiki 1.17 расширение работать отказывалось - браузер выдавал лишь белую страницу смерти. Из-за этого до обновления приходилось использовать SyntaxHighlighter - более скромное расширение, поддерживающее гораздо меньше языков, зато работающее. Но сейчас всё в порядке.

SyntaxHighlight GeSHi

Когда же после обновления MediaWIki удалось установить SyntaxHighlight GeSHi, то оказалось, что по умолчанию им используется довольно мелкий шрифт. По крайней мере, такое наблюдалось в Firefox, а Opera и IE отображали блоки кода с шрифтом нормальных размеров.

Правка MediaWiki:Geshi.css

Это не файл (в каталоге с расширением вы его не найдёте), а спецстраница вашей Вики: вашавики.net/index.php/MediaWiki:Geshi.css.

Изначально страница пустая, её необходимо создать. Всё, что здесь будет вноситься, будет дополнительно использоваться в стилях подсветки синтаксиса (расширение будет брать настройки отображения отсюда, в дополнение к своим).

Следующая конструкция управляет размером шрифта:

div.mw-geshi {
font-size: 15px
}

Однако, на нашей вики это эффекта не дало.

Правка SyntaxHighlight_GeSHi.class.php

Вот это уже действительно файл, который находится в каталоге самого расширения.

Нужно изменить строку:

$css[] = ".source-$lang {line-height: normal;}";

следующим образом (добавить запись про размер шрифта):

$css[] = ".source-$lang {line-height: normal; font-size: 12px;}";

После этого блоки с кодом стали отображаться удобочитаемыми и вообще радующими глаз.

Использование TeX формул

Так как мы технари, то нам просто необходима поддержка $$\TeX$$. Любые "псевдоформулы" набранные доступными с клавиатуры символами покрыли бы нас несмываемым позором. Потому за корректную работу расширения, обеспечивающего поддержку $$\TeX$$ разметки, нужно было бороться до конца.

Math

Начали мы с расширения Math. Тогда у нас стояла MediaWiki 1.17, и оно уже было включено в её состав. Располагалось оно не в обычном каталоге для расширений, а прямо в корневой директории сайта (каталог math).

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

Итак, в каталоге с расширением лежат готовые к сборке исходники утилиты texvc. Нужно зайти в этот каталог и выполнить команду make. Однако, если вы проделываете это не на своём сервере (и прав на выполнение этой команды у вас нет), то об этом нужно попросить вашего хостера, обратившись в его техподдержку.

Затем создайте следующие каталоги и назначьте им права 755:

  • images/math;
  • images/tmp.

Далее необходимо задать следующие три переменных в файле настроек LocalSettings.php:

$wgUseTeX = "true"; 
$wgMathDirectory = "images/math";
$wgTmpDirectory = "images/tmp";

Также должна быть разрешена загрузка изображений.

После этого вики будет способна обрабатывать $$\TeX$$ формулы, заключённые в теге <math></math>.

MathJax

Обновление MediaWiki

Сам процесс уже подробнейше описан, добавить нечего. Приведём лишь сюрпризы, ожидавшие нас при обновлении с 1.17 до 1.19.2. Конечно, скорее всего, их бы не было, если бы мы тщательней изучили документацию перед обновлением.

Логотип и иконка

Так как мы забыли, что размещённые по пути skins/common/images/ логотип и иконка сбросятся на дефолтные при обновлении, то они и сбросились. Пришлось заливать их обратно.

Запрет включения статей в категории шаблонов

Тег <noinclude>, препятствующий добавлению категории шаблона в статью, где он используется, перестал работать должным образом, и статьи с шаблонами моментально оказались в их категориях. Оказалось, что теперь "невключаемость" в категорию шаблона следует оформлять немного по-другому.

Как работало в 1.17:

<noinclude>[[Категория:Преподаватели]]</noinclude>

Как работает теперь в 1.19.2:

<noinclude>:[[Категория:Преподаватели]]</noinclude>

А через некоторое время стало работать и как раньше, потому мы вернули всё как было. Непонятно, что это случилось. Возможно, ненадолго сбилась категоризация, а после правок всё "перекатегоризировалось", так что, выходит, это двоеточие никак не влияло.

Выравнивание таблицы на странице

Конструкция, например, align="right" для выравнивая таблицы по правому краю страницы перестала обрабатываться, потому как за её обработку теперь вроде как отвечает CSS. В результате информационные таблицы, которые были удобно размещены справа, уехали влево.

Оказалось, что мы всё проспали: такой способ устарел и вообще считается плохой практикой в вёрстке. Вместо этого следует использовать следующее:

Тип выравнивания Код разметки
По левому краю style="float:left;"
По правому краю style="float:right;"
По центру style="margin:auto;"

Важные мелочи

Небольшие, но важные советы:

  • при создании шаблонов ни в коем случае не оставляйте пустых строк сверху (и снизу) конструкции <noinclude>. В противном случае пустая строка перенесётся в статью вместе с шаблоном и устроит там содомию.