| Данное расширение находится в стадии разработки и поэтому постоянно дополняется. |
Использование модульных инфобоксов является важным этапом в переходе Викия на мультиплатформенный контент, который будет отображаться на всех электронных устройствах. Модульные инфобоксы — это новое поколение шаблонов. И хотя они продолжают развиваться и дополняться, многие сообщества уже полностью на них перешли.
Данная страница предназначена, в первую очередь, для участников, непосредственно занимающимися созданием шаблонов, и является альтернативным вариантом официальной документации по модульным инфобоксам.
Ответы на часто задаваемые вопросы вы можете найти в разделе 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 году.
Когда предварительный синтаксис для расширений и новых функций станет доступен, он будет опубликован здесь.