Как-то подзабросил я свои wiki-проекты в последние годы — что http://jabberworld.info, что http://linuxoid.in.
В первом случае — вики более-менее в завершенном состоянии. Задача создания руководств для новичков выполнена; стоило бы актуализировать ряд технических статей — например, отсутствие необходимости в современном мире в ресурсах и приоритетах; наличие message archive; получивший популярность http_fileupload, а также появившиеся в последние годы аудио/видеозвонки. Наверное, при наличии времени можно будет даже все это поделать — в том числе актуализировать списки ботов и транспорты. В идеале бы чуть актуализировать список клиентов — например, Conversations упоминается без наличия какой-либо статьи о нем — а ведь на сейчас это один из лучших мобильных клиентов для jabber.
Но даже без всех этих изменений вики может служить отличным ресурсом для тех, кто действительно хочет разобраться в теме и приобщиться к jabber’у — пусть даже скриншоты в некоторых руководствах уже не сильно актуальны.
Что касается http://linuxoid.in — тут чуть иначе. Изначально вики была для создания полезных руководств, заметок, размещения скриптов и конфигов для участников конференции linuxoid@conference.linuxoid.in. Поначалу так и было; на сейчас уже потеряло актуальность. В конференции остался минимум людей. То, что есть на вики — что-то потеряло актуальность (какие-нибудь конфиги xorg, например); где-то иссяк энтузиазм (я давно уже не собираю списки событий в категории «Вендекапец» и тому подобное); ряд скриптов и их код по прошествию лет кажутся забавными и сейчас бы это все уже писал по-другому. Однако оно уже написано, лежит на вики и есть не просит — пусть там и остается. Хотя бы как памятник :).
Однако совсем забрасывать вики не хотелось бы — это весьма удобное хранилище информации. У меня в последнее время активность в плане размещения наработок сместилась в этот блог. Однако тут не всегда удобно размещать исходники скриптов и программ — особенно когда они дописываются и бывает несколько ревизий. Честно говоря, даже не всегда помню про плагин, реализующий тег «pre» с указанием языка для подсветки кода — больше по привычке жму Alt+Shift+x чтобы хоть как-то выделить код. Код для проектов с микроконтроллерами обычно прикрепляю к статье просто в виде архива. Так почему бы не оживить немного wiki и не использовать каждый инструмент по назначению?
«Оживление» начал с актуализации движков — сначала на linuxoid.in, а потом и на jabberworld.info. Как оказалось на сейчас, обновления не делал 6 лет. Поначалу — из-за особенностей софта на сервере: новые движки требовали новый PHP; новый PHP требовал обновить систему на веб-сервере, что приводило к косякам с использованием хостинг-панели. Дальше сервисы переехали на VPS’ку, панель стала неактуальной, но движки так и оставил — просто потому что работают, да и гнаться особо было больше не за чем — в общем, читаем снова первые несколько абзацев. На linuxoid.in несколько лет висела плашка «пофиксить шаблон-хайдер (спойлер, другими словами) и плагин Category Tree» — наконец-то пришло время разобраться с этим.
Движки обновил практически без проблем, косяк был лишь при наполнении таблицы actor (я так понимаю, туда заносится список тех, кто делал хоть какие-то правки на вики, но не обязательно является пользователем) — движок дважды пытался внести одно и то же пустое значение и на этом обламывался — пришлось ассистировать ему, удаляя через консоль mysql «неправильные» строки и нажимая после этого «Далее» в установщике. Позже выявился еще один скрытый баг: если запускать скрипт maintenance/update.php, то тот, не находя таблицу bot_passwords, считал, что движок старее версии 1.27 и отказывался продолжать работу. Пришлось найти схему таблицы (есть в maintenance/tables-generated.sql), создать таблицу (попутно проверил наличие всех остальных таблиц), после чего скрипт отработал. Почему соответствующих проверок и исправлений нет в инсталляторе — не ясно.
LocalSettings.php я поправил под актуальные требования. С расширениями — точнее, с одним расширением — SyntaxHighlight — возникла проблема. Суть в том, что раньше оно использовало для подсветки синтаксиса код на PHP — GeSHi, однако с какой-то версии начало использовать Pygments. Судя по всему, это было еще в те времена, когда я не забросил вики, но тогда я просто скопировал старый плагин вместо нового и все продолжило работать дальше. На сейчас GeSHi уже заброшен и пришлось наконец-то сделать «правильно»: не сказать, что мне это понравилось, однако для возможности вызова из PHP внешнего бинарника пришлось в настройках PHP разрешить proc_open. С обновлением движка Category Tree починился сам собой, а вот с шаблоном-спойлером вышла загвоздка: он перестал работать в том числе на JabberWorld’e. Пришлось активно перепробовать разные варианты, в итоге переделал шаблон по мотивам кода с этой страницы. На сейчас все хорошо, все работает.
В итоге есть актуальный движок с необходимым минимумом плагинов. В движке блога добавил пару плагинов для интеграции с Mediawiki: один для включения контента страницы с вики целиком; второй для упрощенного создания ссылок на страницы вики. Осталось завести привычку всем этим правильно пользоваться :).
Несмотря на то, что вики, согласно описанному выше, вроде как теперь является больше приложением к персональному блогу, желающие из конференции (да и просто знакомые) могут также использовать ее для размещения каких-либо своих материалов.
Update: еще один баг вылез. В 1.27 добавили колонку в таблицу watchlist. Получил ошибку при попытке переименования файла. В Mediawiki держать архив патчей для базы по изменению схемы не модно, поэтому пришлось выковыривать нужную строчку непосредственно из архива с 1.27:
alter table lxw_watchlist ADD COLUMN wl_id int unsigned NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (wl_id);
https://phpwiki.sourceforge.io — интересный проектик, можно будет как-то пощупать.