Mediawiki4Intranet

From Wiki4Intranet
Revision as of 19:18, 14 January 2011 by VitaliyFilippov (Talk | contribs) (Отлаженные)

Jump to: navigation, search

MediaWiki — популярная «вики»-система, написанная на PHP и изначально создававшаяся в качестве «движка» Википедии. Отличается отличной расширяемостью — существует более 1700 расширений к ней.

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

Версия MediaWiki, лежащая в основе сборки: 1.14.1.

Патчи

Всего: 34 патча.

В патчи выносятся:

  • Все изменения в код самой MediaWiki.
  • Незначительные изменения расширений, которые «не тянут» на поддержку отдельной версии.

Исправления багов

То есть патчи, исправляющие какие-либо ошибки. Всего: 17.

categorytree-empty-bullets
Патч расширения CategoryTree, чтобы оно не предлагало разворачивать пустые на самом деле категории.
cite-reenterability-for-different-parser-objects
Патч расширения Cite, направленный на его реентерабельность.
debug-categorized-specialrecentchanges
Исправление выбора по категориям в «Свежих правках».
discussion-newsection-links
Ссылки на несуществующие страницы обсуждений сделаны по умолчанию ссылками на добавление секции.
dont-call-linkholders-__destruct
Исправление некорректного явного вызова деструктора mLinkHolders в парсере.
dont-suppress-same-user-conflicts
Не игнорировать конфликты редактирования, произошедшие из-под одного юзера.
fix-cannot-redeclare-wfspecialupload
Исправление ошибки «Fatal error: Cannot redeclare wfspecialupload()» при загрузке изображения без авторизации. Плюс поддержка HTTP прокси, заданной в стандартной переменной окружения http_proxy, при загрузке изображений по ссылке.
fix-l10n
Исправление сообщения noarticletext в русском языке, добавление формата даты «YYYY-MM-DD HH:MM:SS» без дурацкого «T» между ними.
fix-pdfhandler
Патч расширения PdfHandler, убрано экранирование $wgPdfProcessor'а, ссылки на PDF-файл с его страниц теперь ведут на саму страницу.
gdalwaysresample-setting
Настройка $wgGDAlwaysResample GD, если true, то миниатюры gif’ок получаются более качественными (они всегда уменьшаются с интерполяцией).
no-session-fail
Ликвидация лишней попытки сохранения и «ошибок потери данных сессии» при переходе на форму редактирования статьи с передачей текста в окно редактирования.
trunk-mediafunctions-for-1.14
Патч trunk-версии расширения MediaFunctions, позволяющий ей работать в MediaWiki 1.14.1.
unauth-save-display-modified-source
Показ изменённого, а не оригинального текста статьи при запрещённой попытке сохранения. Нужен, чтобы пользователь не потерял свои изменения при нажатии «Сохранить», если сохранять ему на самом деле запрещено.
upload-autofill-lowercase-extensions
Автоматическая смена регистра расширения загружаемого файла на нижний. Плюс настройка $wgMaxFilenameLength максимальной длины имени файла в списках файлов с миниатюрами — в оригинале забито гвоздями значение 20, что очень мало, и из-за чего имена файлов часто обрезаются.
wfmsg-dont-clear-stripstate
По умолчанию не очищать $parser->mStripState при дополнительных вызовах parse(). Исправляет некоторое количество ошибок с непонятными длинными иероглифическими маркерами «--……..uniq--» в тексте статьи на месте каких-либо данных. На самом деле причина ошибки более глубока: парсер MediaWiki нереентерабелен, авторы об этом знают и, возможно, когда-нибудь исправят.
bug53818-empty-heading-crutch
Ликвидация пустых заголовков (строк вида ====) из текста статьи, вместо того, чтобы принимать большую часть = за маркеры заголовка, а два внутренних = — за текст заголовка.
fixes-for-php-5.3.0
Исправления предупреждений (warnings) под PHP 5.3 и выше, в некоторых файлах MediaWiki и расширении Interwiki.

Доработки

То есть патчи, добавляющие какой-либо новый функционал. Всего: 17.

add-hooks
Добавление хуков. Требуется для расширений HttpAuth (для авторизации методом HTTP Basic) и Wikilog (для группировки свежих правок комментариев в блогах по имени поста на странице «улучшенных» свежих правок).
anchor-link-tocnumbers
Поддержка автоматической простановки номеров секций в ссылках на секции текущей страницы. То есть в ссылки вида «[[#Раздел|Раздел]]» будет автоматически добавлен номер секции («2. Раздел»).
category-subcatlist
Патч расширения CategoryTree. Новый метод группировки страниц в категориях — не по первой букве имени, а по другим категориям, в которых они также перечислены. Чтобы включить этот метод, на страницу категории нужно добавить магическое слово .
detailed-badtitle
Детализация сообщений об ошибках недопустимого имени страницы.
detect-script-allow-html
Разрешение изменения списка тегов, запрещённых в тексте загруженных файлов — настройка $wgForbiddenTagsInUploads.
dot-after-tocnumber
Настройка $wgDotAfterTocnumber, если true, то после номеров разделов в оглавлении ставится точка.
haloacl-rights
Часть расширения HaloACL. Проверки прав доступа к страницам во всём коде MediaWiki. Собственно это и обеспечивает защиту.
html-emails
Часть расширения EnotifDiff. Поддержка отправки почты об изменениях и подтверждении e-mail адреса в формате HTML, а не в виде чистого текста.
imagegallery-tell-transform, imagepage-tell-transform
Передавать данные о том, откуда вызывается создание миниатюры файла. Нужно для FlvHandler’а, чтобы не вставлять код видеоплеера в галереи файлов и в миниатюры файлов в истории ревизий.
parser-debug-doblocklevels
Разрешать включать <center>...</center> и <blockquote>...</blockquote> внутрь абзаца.
rearrange-editform
Перемещение списков использованных в статье шаблонов и скрытых категорий на странице редактирования под форму редактирования, то есть, за пределы элемента <form>. Что необходимо для того, чтобы текст WikEd'овского AJAX-предпросмотра, то есть HTML-текст статьи, не включался в форму, потому что он сам может включать в себя формы, и тогда их содержимое некорректным образом попадает в форму редактирования, что потенциально приводит к неприятным багам. Плюс настройка $wgNoCopyrightWarnings для отключения предупреждений о копирайте (MediaWiki:Copyrightwarning, MediaWiki:Copyrightwarning2).
shift-included-templates-heading-levels
«Сдвиг» уровня заголовков статьи при её включении в подзаголовок. То есть если она включается под заголовком уровня N, то её заголовки 1-го уровня станут (1+N)-ого уровня, 2-го — (2+N), и т. п.
signature-nohyphen
Вставка подписей нажатием кнопки без двух лидирующих минусов «--». Плюс <m>...</m> вместо <math>...</math> на кнопке вставки TeX-формул (обрабатывается расширением MarkupBabel).
transclude-sections
Поддержка включений секций страниц с помощью синтаксиса вида {{:Статья#Секция}}.
translit-upload-filenames
Автоматическое транслитерирование физических имён файлов (то есть имён файлов на диске) с кириллицы на латиницу под Windows.
import-export-images-and-conflicts
Bug:47362 Очень сильно улучшенный импорт/экспорт страниц MediaWiki. Отправлен в Wikimedia Bug 22881. Новые фичи:
  • Поддержка импорта и экспорта загруженных файлов! Причём, в двух вариантах: либо данные файла включаются в экспортный файл, становящийся multipart/related вместо обычного XML, либо загружаются целевой Wiki по необходимости (после проверки хэшей) по выводимым в экспортный файл URL.
  • Имена старых версий файлов теперь включают в себя не странную дату «момента архивирования» (обычно равную дате следующей ревизии плюс-минус одна секунда), а дату создания самой ревизии. Это необходимо для нормального импортирования старых версий файлов, так как с модификацией архивное имя более не зависит от следующих ревизий.
  • Улучшенная выборка страниц для экспорта:
    • Из категорий, включая подкатегории.
    • Из пространства имён.
    • Изменённых после заданной даты.
    • Связанных ссылками с уже выбранными («замыкание по ссылкам»).
  • Выявление «конфликтов» импорта, как в DVCS, и расширенный отчёт по импортированным страницам. 5 вариантов сообщений:
    1. Все редакции были ранее импортированы. Локальных изменений нет.
    2. Все редакции были ранее импортированы. Страница изменена локально.
    3. N версий.
    4. N версий (новая страница).
    5. N версий (конфликт: XX (импорт) и YY (локальная)).
  • При всём этом, механизм импорта обратно совместим с экспортными файлами стандартных версий MediaWiki. То есть в модифицированную Wiki можно загрузить экспортный файл из стандартной, а в стандартную — из модифицированной, в случае, если не экспортируются файлы.

Расширения

Для большинство расширений, присутствующих в SVN Wikimedia, используется их версия, соответствующия версии MediaWiki — например, для версии 1.14.1 расширения берутся из tags/REL1_14_1/extensions. Однако некоторые расширения в 1.14.1 имеют различные неприятные баги, или их там вообще ещё нет, и тогда берётся их trunk-версия (то есть самая новая) из trunk/extensions, возможно, как-то допиливается, например, с помощью патчей, и включается в сборку.

Есть и расширения, которые вообще не попали в SVN, и у которых нет даже своего репозитория с кодом, а есть только где-то выложенные файлики, или даже просто PHP-код на вики-страницах. Такие сохраняются в нашем локальном SVN, там же дорабатываются, и включаются в сборку оттуда. Вообще говоря, у нас есть «супер-система» автоматического объединения кода и патчей из нескольких источников на основе Mercurial и pbranch, но это немного другая история.

Всего: 58.

Неизменённые

То есть просто установленные. Всего: 15.

AllowGetParamsInWikilinks
Разрешение использования URL-параметров (?key=value) во внутренних вики-ссылках.
CharInsert
Поддержка вставки шаблонов <charinsert> для MediaWiki:Edittools. См. также UserMessage.
DeleteBatch
Удаление множества страниц сразу со спецстраницы Служебная:DeleteBatch.
FullLocalImage
Добавление функций {{fullimage:ФАЙЛ}} и {{localimage:ФАЙЛ}}, возвращающих путь хранения файла на сервере (полный в первом случае и относительный во втором).
Google Analytics (trunk)
Гугловский счётчик. Можно подключать на виках, установленных в интернете.
PagedTiffHandler (trunk)
Поддержка TIFF-картинок.
ParserFunctions
Функции парсера типа , и т. п. Справка тут.
PreferencesExtension
Расширение, используемое другими расширениями для добавления пользовательских настроек.
Renameuser (trunk)
Переименование пользователя с корректным обновлением ссылок на него в БД.
SimpleForms
Поддержка добавления на страницы формочек с целью простого создания новых страниц по шаблону.
StringFunctions
Строковые функции. В новых версиях объединены с ParserFunctions, но у нас 1.14.1, а там ещё нет.
SyntaxHighlight_GeSHi
Поддержка подсветки синтаксиса в большинстве распространённых языков программирования с помощью GeSHi. Используется тег <source>. И будет использоваться всегда, несмотря на то, что в новых версиях расширения его заменяют <syntaxhighlight> (маразм).
UserMerge (trunk)
Объединение и удаление учётных записей пользователей с корректным изменением ссылок в БД.
WhoIsWatching
Ответ на вопрос «кто наблюдает за данной страницей?» со страницы Служебная:WhoIsWatching.
WikiCategoryTagCloud
Вставка облаков тегов на страницы. Тегами считаются категории.

Отлаженные

То есть установленные и отлаженные или back-портированные. Всего: 15.

Cite
Поддержка сносок на вики-страницах (теги <ref> и <references>). Внесены изменения патчем.
MediaFunctions (trunk)
Поддержка функций для получения информации о загруженных файлах. Внесены изменения патчем для работы trunk’овой версии в 1.14.1.
PdfHandler (trunk)
Медиаобработчик для PDF-файлов. То есть, поддержка загрузки PDF’ок, их постраничного просмотра и вставки страниц PDF как изображений. Иногда может создавать проблемы, ибо ghostscript обрабатывает некоторые PDF’ки с очень большим трудом, потреблением дискового пространства на /tmp и процессорного времени. Внесены изменения патчем.
MultiCategorySearch
Спецстраница Служебная:MultiCategorySearch для поиска страниц, включённых в несколько категорий сразу.
SimpleTable
Поддержка простого (вменяемого) синтаксиса для вставки таблиц — тега <tab>.
Drafts
Поддержка сохранения черновиков в процессе редактирования страниц, плюс авто-сохранение каждую минуту, чтобы не потерять свои труды, если браузер вдруг накроется.
CategoryTree
AJAX-раскрываемые деревья категорий на спецстранице и страницах самих категорий. Внесены изменения патчами для поддержки альтернативной группировки страниц в категории и удаления плюсиков ([+]) у категорий, не содержащих подкатегорий, в деревьях.
AnyWikiDraw
Поддержка вставки рисованных с помощью Java-апплета картинок на вики-страницы. Увы, нетривиальна в эксплуатации, ибо апплет.
OpenID
Поддержка входа в вики по офигически глючной, но самой распространённой технологии единого входа — OpenID.
Interwiki (trunk)
Междувиковые ссылки, включения, редактирование таблиц интервики. Внесены изменения патчем.
reCAPTCHA
Реализация популярной CAPTCHA («Публичного Полностью Автоматического Теста Тьюринга для Различения Компьютера и Человека»), короче говоря, антиспам для вики-систем, установленных в интернете. У нас, кстати, по умолчанию только что зарегистрированные пользователи не могут создавать новые страницы.
SpecialForm
Ещё одно расширение для создания страниц из форм по шаблонам. Вероятно, от него вскоре полностью откажемся в пользу SimpleForms.
SVNIntegration
Не используется и является хорошей «дырой» в subversion, но позволяет вставлять на страницы файлы из Subversion или информацию о них.
PlantUML
Рисование UML-диаграмм с помощью PlantUML.
Workflow
Небольшое расширения для вставки «переключаемых» состояний страниц (можно назвать «информерами»), реализованных через категории.

Доработанные

То есть установленные и сильно доработанные. Всего: 7.

Calendar
FlvHandler
Поддержка вставки Flash-видеоплееров на страницы с использованием обычного синтаксиса [[Файл:Видео.mp4]]. Поддерживаются видеокодеки FLV+MP3 или H.264+AAC в контейнерах FLV или MP4.
HaloACL
MagicNumberedHeadings
SphinxSearch
SVGEdit
Wikilog

Созданные

То есть созданные в рамках сборки. Всего: 21.

BatchEditor
BugzillaBuglist
CategoryTemplate
CharInsertList
CustisScripts
«композитное» пока-что не разделённое расширение. Включает в себя: WikEd, русскоязычный Викификатор, «автопредпросмотр» AKA Live Preview (показывает в отдельном окне браузера автоматически обновляемый в процессе редактирования предварительный просмотр страницы), плюс несколько изменений CSS стилей.
DocExport
EnotifDiff
отправка почты об изменениях наблюдаемых страниц в формате HTML, опциональное включение в них diff’ов (текстов различий), отправка писем о подтверждении e-mail адресов в формате HTML.
GlobalAuth
поддержка самопального веб-протокола Single Sign-On в MediaWiki (как клиентской, так и серверной стороны).
HttpAuth
поддержка входа в Wiki с использованием HTTP Basic авторизации. Полезно, например, для доступа к RSS/Atom лентам в закрытых с помощью HaloACL вики-системах из читалок.
ListFeed
генерация RSS-лент из вики-списков (* или #).
MarkupBabel
MediawikiQuizzer
MMHandler
Polls
S5SlideShow (MWSlideology)
SubPageList2
SiteExport
SWFUpload
UserMagic
UserMessage
WikiBookmarks