Викии Вики
Викии Вики
Advertisement
Викии Вики
1866
страниц
TemplateData - Пример

Пример мини-редактора шаблона с заполненной TemplateData.

TemplateData — расширение, которое добавляет шаблонам дополнительную настройку отображения в виде различных подсказок при редактировании. Поддерживает описания на нескольких языках. Стало доступно с введением Единой платформы вместе с новой версией MediaWiki.

Использование[]

Данное расширение основано на формате данных JSON. Есть 2 способа работы с расширением:

Через редактор[]

Диалоговое окно редактирования помогает значительно облегчить работу с данными. Чтобы открыть его, необходимо при редактировании шаблона нажать кнопку «Управление TemplateData».

Общее окно[]

TemplateData - Редактор1

Первое и основное окно, открываемое при начале редактирования включает в себя (сверху вниз):

  • Выпадающее меню «Язык» — для каждого языка можно настроить собственные настройки отображения параметров, но только некоторые из них.
  • Поле «Описание шаблона (код_языка)» — поле ввода, позволяющее настроить краткое описание вверху шаблона. Поддерживает настройку для разных языков.
  • Предлагаемое форматирование викитекста — настройка того, как код шаблона будет вставлен в исходный код страницы. Доступные варианты:
    • Не определён — базовая настройка по умолчанию.
    • Внутристрочный — будет вставлен в код в формате:
      {{Шаблон1|параметр1=значение1|параметр2=значение2}}{{Шаблон2}}
    • Блочный — будет вставлен в код в формате:
      {{Шаблон1

| параметр1 = значение1 | параметр2 = значение2 }}{{Шаблон2 }}

    • Настраиваемый — см. ниже.
  • Поле «Нестандартный формат» — поле ввода, доступное только при выборе в разделе выше варианта «Настраиваемый». Позволяет вписать собственные настройки вставки. См. подробнее.
  • Параметры шаблона — раздел, в котором перечислены все добавленные на данный момент параметры. При первом редактировании будет пуст, однако при редактировании инфобокса созданного через конструктор он может быть базово заполнен.

Добавить параметр для настройки можно, нажав на кнопку «Добавить параметр» и вписать необходимое имя в поле ввода. Имя должно быть таким же, как оно указано в коде (например, дата_рождения или 1).

Окно параметра[]

TemplateData - Редактор2

После добавления необходимого параметра можно кликнуть по нему и перейти в окно редактирования параметра. Оно включает в себя следующие пункты (сверху вниз):

  • Имя — имя выбранного параметра. Если в используемом имени есть ошибка или нужно заменить один параметр на другой, это можно сделать прямо здесь.
  • Псевдонимы (через запятую) — список псевдонимов, которые могут быть использованы наравне с основным именем параметра.
  • Обозначение (код_языка) — более читабельное или приятное глазу наименование параметра при визуальном редактировании.
  • Описание (код_языка) — краткое описание о цели использования данного параметра.
  • Пример (код_языка) — пример заполнения поля параметра.
  • Тип — тип данного параметра. От некоторых из них зависит визуальное отображение и функционал поля ввода.
    • Неизвестно;
    • Логическое значение;
    • Содержимое (контент);
    • Имя файла;
    • Однострочный;
    • Число;
    • Дата;
    • Имя страницы;
    • Строковый (без форматирования);
    • Имя шаблона;
    • Несбалансированный вики-текст;
    • URL;
    • Имя участника.
  • По умолчанию (код_языка) — значение, которое будет подставляться по умолчанию, но впоследствии может быть изменено.
  • Автозначение — значение, которое будет подставлено при создании шаблона, исходя из заполнителя (например, {{subst:CURRENTYEAR}}).
  • Устаревший — пометка на выбор, является ли параметр устаревшим. Устаревшие параметры будет помечены в редакторе шаблона серым значком «!». При выборе параметра в качестве устаревшего можно также вписать дополнительную информацию в поле «Пояснения к устареванию» (например, предложить воспользоваться другим параметром).
  • Обязательный — пометка на выбор, является ли параметр обязательным. Обязательные параметры будут вставляться в редактор шаблона автоматически, а при незаполнении хотя бы одного из них будет высвечиваться предупреждение.
  • Предложенный — пометка на выбор, является ли параметр предложенным. Предложенные параметры будут вставляться в редактор шаблона автоматически, без необходимости выбора их через добавление параметров.

Поля, имеющие в себе уточнение виде кода_языка могут быть отредактированы для нескольких языков сразу.

Через исходный код[]

Для этого необходимо вставить в код тег <templatedata></templatedata>, который должен находиться внутри тега <noinclude></noinclude>. Далее будет идти работа только с JSON.

Термины[]

  • Ключ — первый в паре ключ: значение. Записывается в кавычках.
  • Значение — второй в паре ключ: значение. Может быть представлен одним из типов данных: строкой ("текст для примера"), числом (10), массивом ([ "это", "массив" ]), объектом ({ "это": "объект", "для": "примера" }).
  • Объект — множество пар ключ: значение, которые находятся в фигурных скобках ({ ... }) и перечислены через запятую. Пары могут находится в любом порядке ({ "это": "объект", "для": "примера" } = { "для": "примера", "это": "объект" }).
  • Массив — список значений, которые находятся в квадратных скобках ([ ... ]) и перечислены через запятую. Значения строго упорядочены ([ "это", "массив" ][ "массив", "это" ]).

JSON-данные обязательно должны начинаться с объекта, в котором уже будут указаны сами данные.

Объект TemplateData[]

Базовыми ключами на данном этапе доступны:

Ключ Тип
description Строка
(Текст без викиразметки)
params Объект
paramOrder Массив строк
sets Массив Set
maps Коллекция Map
format Строка
(или стандартные параметры block и inline)
{
    "description": "...",
    "params": { ... },
    "paramOrder": [ "...", "..." ],
    "sets": [ { ... }, { ... } ],
    "maps": { ... },
    "format": "..."
}

description
Данный ключ отвечает за описание вверху шаблона. Описание должно представлять из себя небольшой текст без вики-разметки.

"description": "Данный шаблон служит для подачи краткой информации о персонаже"

params
Данный ключ отвечает за настройку отображения каждого из параметров. Представляет из себя объект, каждый ключ в котором является отдельным параметром.

"params": {
    "имя": { ... },
    "дата_рождения": { ... },
    "цвет_волос": { ... },
    "цвет_глаз": { ... },
    "возраст": { ... },
    "пол": { ... },
    "первое_появление": { ... }
}

paramOrder
Данный ключ отвечает за то, в каком порядке должны идти параметры в шаблоне при визуальном редактировании. Представляется в виде массива строк, каждая из которых является отдельным параметром, причём указаны должны быть обязательно все параметры. Необязателен, без него параметры будут отображаться в том порядке, в котором они стоят в коде шаблона.

"paramOrder": [
    "имя",
    "возраст",
    "дата_рождения",
    "пол",
    "цвет_волос",
    "цвет_глаз",
    "первое_появление"
]

sets

Плашки 1
Этот раздел не дописан.
Вы можете помочь Викии Вики, дополнив его.

maps

Плашки 1
Этот раздел не дописан.
Вы можете помочь Викии Вики, дополнив его.

format
Данный ключ отвечает за то, каким образом шаблон должен вставляться в текст при визуальном редактировании. Доступные варианты:

  • inline или {{_|_=_}}
    Будет использоваться как:
{{Шаблон1|параметр1=значение1|параметр2=значение2}}{{Шаблон2}}
  • block или {{_\n| _ = _\n}}
    Будет использоваться как:
{{Шаблон1
| параметр1 = значение1
| параметр2 = значение2
}}{{Шаблон2
}}

Также можно настраивать данные значения самостоятельно. В данном случае \n означает перенос строки, _ означает:

  • шаблон (самая первая после {{);
  • параметр (если идёт до =);
  • значение (если идёт после =);
  • длину отступа до = (если идут несколько подряд, тогда длина измеряется в количестве подчёркиваний со 2-го).

а пробелами определяются базовые отступы (в один пробел).

"format": "{{_|_=_}}"

или

"format": "inline"

Объект параметра[]

Каждый ключ параметра является собственным объектом данных. Для них доступны следующие ключи:

Ключ Тип
label Строка
(Текст без викиразметки)
description Строка
(Текст без викиразметки)
type Строка
(Текст без викиразметки)
aliases Массив строк
inherits Строка
default Строка
(Текст без викиразметки)
autovalue Строка
example Строка
(Текст без викиразметки)
required Логическое значение
suggested Логическое значение
deprecated Логическое значение
(или строка)
{
    "label": "...",
    "description": "...",
    "type": "...",
    "aliases": [ "...", "..." ],
    "inherits": "...",
    "default": "...",
    "autovalue": "...",
    "example": "...",
    "required": false,
    "suggested": false,
    "deprecated": false
}

label
Данный ключ отвечает за отображения более читабельного или приятного глазу названия параметра при визуальном редактировании. Стоит учесть, что он не заменяет имя параметра в коде (например, параметр с именем дата_рождения и установленным label как Дата рождения нельзя вызвать через Дата рождения =). Должен представлять из себя короткое (рекомендуется до 20 символов) название, желательно подстать оригинальному имени параметра, без вики-разметки.

"имя": "Имя"

description
Данный ключ отвечает за отображаемое по наведению на кнопку «i» и под названием параметра его описание. Само описание не должно быть слишком большим и не должно иметь викиразметку.

"description": "Имя указанного персонажа."

type
Данный ключ отвечает за то, какой тип будет выбран для указанного параметра. Существует несколько типов:

  • unknown — тип по умолчанию, никак не выделен, представляет из себя стандартное поле ввода в несколько строк;
  • number — цифра/число, с учётом отрицательных и дробных: 10, -100 или 0.1;
  • string — текст любого размера с возможными переносами строк;
  • line — текст, желательно короткий, которому не разрешено иметь переносы строк;
  • boolean — логическая переменная по троичной логике: 1 — истина, 0 — ложь, ничего — неизвестно;
  • date — дата/время в формате ISO 8601: ГГГГ-ММ-ДД или ГГГГ-ММ-ДД:ЧЧ-ММ-СС;
  • url — ссылка на внешний ресурс с учётом протокола (//) в любом формате: https://www.example.com, https://example.com или //example.com;
  • wiki-page-name — ссылка на страницу на вики, при вводе в поле с данным типом будет отображаться выпадающее меню с предлагаемыми страницами;
  • wiki-file-name — ссылка на файл на вики, в формате, не включающем пространство имён Файл или File: ИмяФайла.png, но не Файл:ИмяФайла.png;
  • wiki-template-name — ссылка на шаблон на вики, при вводе в поле с данным типом будет отображаться выпадающее меню с предлагаемыми шаблонами;
  • wiki-user-name — ссылка на участника вики, в формате, не включающем пространство имён Участник/Участница или User, при вводе в поле с данным типом будет отображаться выпадающее меню с предлагаемыми именами участников: Kuzura, но не Участник:Kuzura;
  • content — текст с викиразметкой для ситуаций, когда надо вставить ссылки, изображения и прочее;
  • unbalanced-wikitext — текст с несбалансированной викиразметкой — такой, которая при стандартной ситуации будет выдавать ошибку — например, имеющей незакрытие теги.

На данный момент только поля line, url, wiki-page-name, wiki-template-name и wiki-user-name имеют визуальные отличия от поля с типом unknown в новейшем визуальном редакторе.

"type": "line"

aliases
Данный ключ отвечает за псевдонимы параметра, которые можно использовать наравне с его указанным именем. Псевдонимы указываются в формате массива строк (даже если псевдоним один, он должен быть указан как элемент массива).

"aliases": [ "название", "наименование" ]

inherits
Данный ключ отвечает за указание, из какого стороннего параметра должен взять указанные данные выбранный параметр для отображения. Так, параметр param1 с указанным в inherits сторонним параметром param2 будет использовать данные param2 (например, label, description, type или прочее, если было указано). Ключи, используемые в данном параметре будут перезаписывать собой сторонние данные — например, если у param2 с inherits используется ещё и description, param2 будет использовать данные param1, но со своим описанием.

"inherits": "дата_рождения"

default
Данный ключ отвечает за значение, которое будет использоваться данным параметром по умолчанию, если не вписано что-либо иное.

"default": "Петров Пётр"

autovalue
Данный ключ отвечает за содержимое, которое при вставке шаблона должно подставиться автоматически исходя из заполнителя, что позволяет изменять его.

Стоит учесть, что содержимое подставляется только при записи правки.

"autovalue": "{{subst:PAGENAME}}"

example
Данный ключ отвечает за значение, которое выводится в качестве примера для заполнения поля. Не должно иметь викиразметки.

"example": "Иванов Иван"

required
Данный ключ отвечает за условие, необходим ли данный параметр для шаблона. Если было указано, что да, данный параметр гарантированно появится в мини-редакторе полей шаблона, а при выходе из него, если хотя бы один таковой параметр не был заполнен, появится предупреждение.

По умолчанию: false

"required": true

suggested
Данный ключ отвечает за условие, стоит ли выдавать данный параметр для шаблона по умолчанию. Если было указано, что да, он сразу появится в списке параметров (его не надо будет выбирать из списка параметров к добавлению).

По умолчанию: false

"suggested": true

deprecated
Данный ключ отвечает за условие, устарел ли данный параметр для шаблона. Если было указано, что да, при редактировании будет помечено серым значком «!» и подписью под описанием параметра, что он является устаревшим. При желании, можно указать дополнительную информацию, которая будет отображаться в дополнение в вышеописанному. В таком случае значение ключа будет играть как true.

По умолчанию: false

"deprecated": true

или

"deprecated": "Используйте вместо этого 'наименование'."

Для использования нескольких языков при оформлении параметров стоит в тех ключах объекта параметров, где используется обычный текст описания (label, description, example) заменить значение со строки на объект, ключи в котором должны являться двухзначными кодами языков:

"description": {
    "ru": "Имя указанного персонажа.",
    "en": "Name of the specified character.",
    "es": "El nombre del personaje especificado."
}

Пример[]

Итого, с указанными выше настройками получается следующий код, без учёта тега <templatedata>:

{
    "description": "Данный шаблон служит для подачи краткой информации о персонаже",
    "params": {
        "имя": {
            "label": "Имя",
            "description": "Имя указанного персонажа.",
            "type": "line",
            "example": "Иванов Иван",
            "required": true
        },
        "дата_рождения": {
            "label": "Дата рождения",
            "description": "Дата рождения персонажа.",
            "type": "date",
            "example": "2001-09-07",
            "suggested": true
        },
        "цвет_волос": {
            "label": "Цвет волос",
            "description": "Цвет волос указанного персонажа.",
            "type": "line",
            "example": "Чёрный"
        },
        "цвет_глаз": {
            "label": "Цвет глаз",
            "description": "Цвет глаз указанного персонажа.",
            "type": "line",
            "example": "Голубой"
        },
        "возраст": {
            "label": "Возраст",
            "description": "Количество полных лет, исполнившихся персонажу.",
            "type": "number",
            "example": "19"
        },
        "пол": {
            "label": "Пол",
            "description": "Пол указанного персонажа",
            "type": "line",
            "example": "Мужской",
            "suggested": true
        },
        "первое_появление": {
            "label": "Первое появление",
            "description": "Сезон и эпизод, в котором персонаж появляется в первый раз.",
            "type": "line",
            "example": "Сезон 2, Эпизод 12",
            "suggested": true
        }
    },
    "paramOrder": [
        "имя",
        "возраст",
        "дата_рождения",
        "пол",
        "цвет_волос",
        "цвет_глаз",
        "первое_появление"
    ],
    "format": "block"
}

См. также[]

Advertisement