Рулус и Вики

Когда мне нужно было выбрать вики-движок для Рулуса, MediaWiki была исключена из возможных вариантов за избыточный функционал (и, возможно, за свою внешность).

Тогда я остановился на WikkaWiki. Это довольно неплохой легкий движок, но по ходу дела я с ним намучился. В основном это было связано либо с локализацией, либо с тем, как она обращается с UTF-8.

Локализация была сделана самостоятельно, хотя в процессе обнаружилось, что некоторые сообщения прописаны прямо в коде. О да, этой болезнью страдают многие. Подумаешь, всего несколько английских слов, люди же поймут. В принципе, можно было все сделать как полагается и даже поделиться локализацией «с сообществом», но второй момент резко уменьшает смысл.

Я уверен, что WikkaWiki отлично работает с однобайтовыми кодировками. Но с русским языком выявилось сразу несколько проблемных мест — думаю, реально их намного больше, и штопать все это совсем не хотелось. Если бы меня спросили, что самое главное я мог бы пожелать программистам, которые кроме английского языка других не видели, так это «думайте иногда, что будет, если здесь появится строка в многобайтовой кодировке».

Вот так и получается, что эти вики-движки, однажды буйно разросшиеся, постепенно забываются и пылятся на своих сайтах.

Рулус был перенесен на MediaWiki (последняя стабильная версия на этот момент — 1.22) и вчера выпущен на промысел. Конечно, там все более четко. Благодаря тому, что от движка зависит Википедия, они не могут позволить себе явных косяков. Но в целом, как мне показалось, дела в сообществе скорее грустные. Например, на Stack Overflow человек что-то спрашивает, и ему говорят: «А почему вы не спросите на странице обсуждения где-то на mediawiki.org?» Он отвечает: «Да я спросил, но там уже несколько месяцев никто не отвечает, поэтому я сюда пришел».

Скажем, к MediaWiki нельзя просто взять и прикрутить вход через OAuth. Есть расширение для Facebook, я взялся за него, но не так-то просто. Последняя версия использует что-то из MediaWiki 1.23, которая сейчас пока в альфе — соответственно, пришлось взять предыдущую. Далее, она использует класс из 1.21, которого уже нет в 1.22 — почему это сохраняется в расширении вплоть до последней версии, я так и не понял. К счастью, реально этот класс не очень-то нужен, так что просто берем его из 1.21 и подсовываем. Была еще проблема с сертификатом, но это уже знакомо и решение есть. В итоге вход через Facebook заработал.

Что касается стилей, выбор небольшой, в основном все очень старое и уродливое. То, что сейчас на Рулусе, было получено допиливанием стиля Vector. Не все гладко с мобильным фронтендом, он почему-то не подгружает дополнительные стили, которые должен подгружать. Вот просто так пишут — в предыдущей версии была ошибка, они не грузились, а в этой должны. Пришлось вшивать это туда довольно грубым способом.

Ну и тому подобное, многие проблемы приходится решать самостоятельно, а спросить вроде бы и не у кого. Можно только порадоваться, что разработка вообще идет и что есть люди, на энтузиазме которых все держится — например, в 1.23 есть уже симпатичный визуальный редактор. В этом году должен выйти релиз.