Данное расширение находится в стадии разработки и поэтому постоянно дополняется. |
Использование модульных инфобоксов является важным этапом в переходе Викия на мультиплатформенный контент, который будет отображаться на всех электронных устройствах. Модульные инфобоксы — это новое поколение шаблонов. И хотя они продолжают развиваться и дополняться, многие сообщества уже полностью на них перешли.
Данная страница предназначена, в первую очередь, для участников, непосредственно занимающимися созданием шаблонов, и является альтернативным вариантом официальной документации по модульным инфобоксам.
Ответы на часто задаваемые вопросы вы можете найти в разделе FAQ.
Общие сведения[]
Модульные инфобоксы, как и обычные создаются в пространстве имён «шаблон» (например, Шаблон:Инфобокс персонаж), но в отличие от обычных, модульные инфобоксы написаны с помощью XML-разметки вместо викитекста или языка шаблонов Lua. Такая разметка более распространена в HTML и расширениях внутри викитекста, а синтаксис модульных инфобоксов на самом деле и представляет собой разметку для расширений, что позволяет таким инфобоксах автоматически настраиваться для отображения на разных устройствах.
В случае, если на вики уже используются обычные инфобоксы, и участники решили поменять их на модульные, то им достаточно будет изменить лишь сами шаблоны типа Шаблон:Пример, а не все статьи, где он используются.
Инструмент конвертации инфобоксов был создан с целью облегчить переход на модульные инфобоксы. В результате конвертации на отдельной странице появляется черновая версия шаблона, которую вы можете подправить и уже после этого вручную заменить основной шаблон. Стоит отметить, что на всех проектах классические инфобоксах реализованы по-разному, поэтому конвертер очень плохо работает с со сложными и оригинальными шаблонам (например, с использованием Lua или запутанных функций парсера).
Основные сведения[]
- Главная страница: Справка: Инфобоксы
На странице статьи вы можете использовать модульный инфобокс так же, как и классический:
{{Инфобокс персонаж | название = Маргаритка | изображение = Пример.jpg | подпись = Маргаритка в саду | класс = Садовый цветок | возраст = 2 месяца | статус = Жива | рост = 5 дюймов | вес = 20 граммов }}
Запрашиваемый шаблон (в нашем случае Шаблон:Инфобокс персонаж) использует модульную разметку, которая выглядит так:
<infobox>
<title source="название" />
<image source="изображение">
<caption source="подпись" />
</image>
<data source="класс" />
<data source="возраст" />
<data source="статус" />
<data source="рост" />
<data source="вес" />
</infobox>
Подобный код может получиться при использовании инструмента конвертации. Проверка и добавления пользователей сделают этот инфобокс ещё лучше. В следующем примере показано использование тегов <default>
(который может быть использован как дочерний тег в любом элементе, который обращается к тегу <source>
), <labels>
и <format>
. Последний тег нужен для работы непосредственно со значениями строк. Этот тег также может быть использован в других случаях, о которых мы расскажем позже.
<infobox>
<title source="название">
<default>{{PAGENAME}}</default>
</title>
<image source="изображение">
<caption source="подпись" />
</image>
<data source="Класс">
<label>Класс</label>
</data>
<data source="возраст">
<label>Возраст</label>
</data>
<data source="статус">
<label>Статус</label>
</data>
<data source="рост">
<label>Рост</label>
<format>{{{рост}}} дюймов</format>
</data>
<data source="вес">
<label>Вес</label>
<format>{{{вес}}} граммов</format>
</data>
</infobox>
Черновики, созданные инструментом конвертации[]
- Главная страница: Справка: Инфобоксы/конвертация
Инструмент конвертации используется для превращения классических инфобоксов в модульные, но его эффективность варьируется в зависимости от исходных инфобоксов. При конвертации сложных инфобоксов вам всегда потребуется вручную отредактировать получившийся черновик.
Вставка инфобоксов в визуальном редакторе[]
При использовании визуального редактора — самого распространённого инструмента редактирования среди новичков — процесс добавления инфобокса довольно прост. Выпадающее меню в панели редактирования имеет опцию «инфобокс», которая вызывает список модульных инфобоксов на вики. Однако, настроить инфобокс в визуальном редакторе не так просто. На данный момент параметры инфобокса показаны без объяснений, а для вставки изображений и видео приходится прибегать к обходным решениям.
Для вставки изображений (или видео) в инфобокс используйте инструмент вставки в визуальном редакторе. Выбранное изображение нужно сначала вставить в текст статьи, а потом скопировать его данные и внести их в инфобокс в режиме исходного кода. Внимательно следите за тем, куда вы копируете адрес изображения, так как он должен находиться точно в поле инфобокса «изображение». Размер, подпись, или миниатюру изображения указывать не нужно, потому-что они не будут учтены инфобоксом. Размеры изображения настраиваются с помощью CSS, а создание подписи осуществляется с помощью отдельного тега <caption>
.
Процесс копирования данных изображений из текста статьи в инфобокс также необходим в классическом редакторе.
Теги[]
- Главная страница: Справка: Инфобоксы/теги
Если вы ещё помните классические инфобоксы, то слово, вставленное в три фигурные скобки (например, {{{слово}}}
) называется параметром. Параметры представляют собой вводные данные для шаблона, где значение «слова» — это то, что присвоено параметру в статье. Такие вводные данные также будут понятны модульному инфобоксу, если вы напишите source="слово"
. Эти параметры используются отображения значений параметров, и их вид в опубликованной статье можно настроить с помощью тега <format>
.
Вложение тегов необходимо для их отслеживания, так как определённые теги могут быть вложены только в другие теги. В XML-разметке важно всегда закрывать теги. Если же они не требуют закрывающих тегов, закрывайте их с помощью слеша в конце: />
.
Чтобы сгруппировать элементы в раздел, используйте тег <group>
.
Теги <navigation>
дают возможность использовать викитекст в модульных инфобоксах, так как иначе его использование может быть ограничено или просто проигнорировано инфобоксом. Эти теги обычно занимают целую секцию (как теги <data>
) и могут быть использованы для размещения ссылок и другой информации (чаще всего их используют для сносок).
Изображения[]
Табуляция изображений поддерживается в модульных инфобоксах. Для этого вам потребуется разместить набор изображений внутри тега <gallery>
или <tabber>
(см. раздел табберы и галереи).
- Пример модульного инфобокса
<!-- Инфобокс персонаж --> <infobox layout="stacked"> <title source="название"><default>{{PAGENAME}}</default></title> <image source="изображение" /> <data source="сезон"><label>Сезон(ы)</label></data> <data source="первое"><label>Первое появление</label></data> </infobox>
- Пример использования галереи
{{Инфобокс персонаж |название = Мария Каллас |изображение = <gallery> Мария в Лондоне.jpg|Мария в Лондоне Мария в Париже.jpg|Мария в Париже Мария в Милане.jpg|Мария в Милане </gallery> |сезон = [[Сезон 1949 | 1949]], [[Сезон 1950 | 1950]], [[Сезон 1951 | 1951]], [[Сезон 1952| 1952]], [[Сезон 1953| 1953]] |первое = [[Тангейзер]] }}
- Пример использования таббера
{{Инфобокс персонаж |название = Мария Каллас |изображение = <tabber> Лондон = [[Файл:Мария в Лондоне.jpg]] |-| Париж = [[Файл:Мария в Париже.jpg]] |-| Милан = [[Файл:Мария в Милане.jpg]] </tabber> |сезон = [[Сезон 1949 | 1949]], [[Сезон 1950 | 1950]], [[Сезон 1951 | 1951]], [[Сезон 1952| 1952]], [[Сезон 1953| 1953]] |первое = [[Тангейзер]] }}
Оформление с помощью CSS[]
- Главная страница: Справка: Инфобоксы/CSS
Модульные инфобоксы оформляются автоматически с использованием настроек из конструктора тем. Если у переменной нет значения, то соответствующая строка в инфобоксе показана не будет (кроме тех случаев, когда используется тег <default>
).
Инлайновый CSS не поддерживается. Уникальные классы также не поддерживаются, но можно использовать ограниченный набор классов для оформления элементов через атрибуты theme
and theme-source
.
Макет[]
Табличный макет устанавливается по умолчанию. В нём название строки располагается слева, а значение — справа. На данный момент макеты инфобоксов довольно просты и затрагивают лишь названия и значения строк.
|
|
|
Макеты можно применить и к группам (см. ниже).
Группы[]
Группы можно назвать инфобоксами внутри инфобоксов, и поэтому вы можете создать для них уникальный макет и дополнительные операторы отдельно от общего инфобокса.
Группы отлично подходят для разделов инфобокса, которые вы хотите сделать сворачиваемыми. Для этого требуется добавить следующие атрибуты:
collapse="closed"
— сделает группу свёрнутой по умолчаниюcollapse="open"
— сделает группу развёрнутой по умолчанию
Темы[]
Темы — это наборы стилей CSS, которые используются для оформления инфобоксов (с помощью атрибута theme="themename"
инфобокса). Когда вы указываете нужную тему, вы можете также указать стили для класса .portable-infobox.pi-theme-themename
в вашем MediaWiki:Wikia.css. Они могут отличаться от стиля, настроенного по умолчанию, но неопределённые стили в вашей теме унаследуют атрибуты стиля по умолчанию.
- Примеры
- На странице Оформление портативных инфобоксов (англ.) можно рассмотреть отличия между разными темами.
- Список готовых тем.
Усовершенствование выходных данных[]
Самый простой способ использовать данные — это выводить значения точно в таком же виде, в каком они были введены. Однако, второстепенной задачей модульных инфобоксов является планомерное упорядочивание данных. В одном из предыдущих примеров уже предполагалось, что значения будут введены в дюймах и граммах, а тег <format>
автоматически добавляет текст «дюймов» или «граммов», так как предполагается, что вводиться будут цифровые значения. Вполне возможно, что в будущих версиях Визуального редактора можно будет вводить только цифровые значения.
Теги <format>
[]
Теги <format>
позволяют настраивать визуального оформления данных для тегов <data>
, <title>
и <caption>
.
Функции парсера[]
Функции парсера вызываются в тегах <default>
, <format>
и <navigation>
с помощью выражения {{#switch:
(или другого похожего выражения). При использовании в тегах <format>
или <navigation>
это выражение отображаться не будет, если во внешнем параметре <data source>
не установлено значение.
При использовании в <default>
избегайте отсылки к элементу, для которого это значение установлено по-умолчанию. Использование функции парсера в <default>
ведёт к заимствованию информации из других источников для создания выходных данных в тех полях, где информация отсутствует. Не нужно использовать выражение {{#if:
при тестировании внешнего вводного параметра, поскольку эти выражения не будут отображаться в инфобоксе, если они не заполнено или вообще отсутствуют (кроме случаев, когда используется тег <default>
).
Использование функций Lua[]
Функции Lua, и в особенности функции с одновременными вводными данными, могут быть вызваны везде, где можно использовать викитекст. Обычно это делается в тегах <format>
и <default>
с помощью выражения {{#invoke:}}
.
DPL[]
Dynamic Page List (DPL, Динамический Список Страниц) — комплексное и мощное расширение, которое может создать списки (в основном для таблиц) на основании категорий и других метаданных (таких как отметки времени или «последний раз редактировалось»). Однако, оно имеет свои ограничения. Обратите внимание, что данное расширение не подключено по-умолчанию, поэтому для его использования вам нужно подать запрос.
На будущее[]
Замена функциональности для Semantic MediaWiki (SMW) и DynamicPageList (DPL) внутри инфобоксов и объединённые HTML5-микроданные обсуждались на съезде администраторов в 2015 году.
Когда предварительный синтаксис для расширений и новых функций станет доступен, он будет опубликован здесь.