Руководство:Расширение вики-разметки
MediaWiki предоставляет стандартную текстовую разметку, которую можно легко настроить. Возможны как индивидуальные, так и множественные настройки:
- Добавление стандартных типов токенов: стандартный подход к пользовательской разметке MediaWiki — добавить новую разметку, которая выглядит как встроенные в MediaWiki теги XML (
<tag>
), шаблоны ({{...}}
) или разметка ссылок ([[...]]
); - добавление настраевыемых типов токенов: некоторые расширения определяют новые типы токенов;
- фундаментальные изменения в парсере: несколько расширений пытаются кардинально изменить стратегию синтаксического анализа, чтобы можно было использовать (нужно использовать?) разметку из других видов вики и управления контентом вместо стандартной разметки вики.
Добавление к стандартным типам токенов
- Расширения функций парсера : Расширение Parser function расширяют параметризованную обработку шаблона и обычно выглядят примерно так:
{{#funcname ...}}
. Хотя можно использовать любое «имя шаблона», пользовательские расширения всегда начинаются с имени функции #, как в примере выше. Другие имена функций синтаксического анализатора зарезервированы для использования ядром MediaWiki.
Когда{{#funcname ...}}
реализована как функция синтаксического анализатора, она передаёт свои параметры шаблона в функцию PHP вместо обычной статьи шаблона. Эта функция возвращает строку вики-текста, которая заменяет параметризованный шаблон. Функции парсера используются для обработки генерации вики-текста, которая включает в себя логику, которая слишком сложна или сбивает с толку, чтобы писать, используя обычные методы написания шаблонов. - Variable extensions : Расширение Variable расширяет обработку параметров без параметров.
Вместо обычного включения в статьи,{{XXX}}
ассоциируется с функцией PHP, который возвращает строку вики-текста заменяя её. They are usually used to insert system information into wiki markup (e.g., the current time, the current page). - XML markup extensions : XML markup extensions (also known as tag extensions) define custom XML-style tags in the wikitext: The text between the tags gets passed on to a PHP function which parses the contents of the tag and returns an HTML string that replaces the tag and text. The content inside the tags may be wiki markup, straight text, or text with formatting rules specific to the tag. It is up to the extension implementer. Please check documentation of individual extensions.
<tagname parname="parvalue" ... parname="parvalue"> some text </tagname>
- Link markup extensions/ru : Link markup extensions change the way MediaWiki interprets internal links, i.e., wiki markup of the form [[...]].
- Extended syntax extensions : Extended syntax extensions, mostly Magic Word extensions, add to the list of MediaWiki Magic Words, such as
__NOTOC__
. Usually, a specific PHP function interprets these words, and either replaces them with something, or sets some conditions for later processing during output generation, or both. Most usually, the replacement is the empty string; that is, the Magic Word is deleted, and nothing is shown in its place. Altered processing may involve addition of an extra piece of CSS, or suppression of user preference settings during page generation, and can be almost anything.
Adding new token types
To add new token types or to change the entire markup strategy, implementers need to add functions to one or more of the various parser and page output hooks:
- Category:ParserBeforeStrip extensions rely on the ParserBeforeStrip hook.
(удалено в 1.36)
- Category:ParserBeforeInternalParse extensions rely on the ParserBeforeInternalParse hook.
- Категория:Расширения OutputPageBeforeHTML rely on the OutputPageBeforeHTML hook.
- Категория:Расширения ParserAfterTidy rely on the ParserAfterTidy hook.
See also Категория:Расширения по использованию хуков .
См. также
- Руководство:Расширения - provides general instructions for finding, installing, and writing extensions.