Довідка:TemplateData

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Help:TemplateData and the translation is 96% complete.
Other languages:
Bahasa Indonesia • ‎Cymraeg • ‎Deutsch • ‎English • ‎Esperanto • ‎Ilokano • ‎Lëtzebuergesch • ‎Nederlands • ‎Oromoo • ‎Scots • ‎Tiếng Việt • ‎Türkçe • ‎Zazaki • ‎asturianu • ‎azərbaycanca • ‎català • ‎dansk • ‎emiliàn e rumagnòl • ‎español • ‎euskara • ‎français • ‎føroyskt • ‎galego • ‎hrvatski • ‎italiano • ‎lietuvių • ‎magyar • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎slovenčina • ‎slovenščina • ‎suomi • ‎svenska • ‎čeština • ‎Ελληνικά • ‎български • ‎македонски • ‎русский • ‎српски / srpski • ‎українська • ‎հայերեն • ‎ייִדיש • ‎עברית • ‎العربية • ‎تۆرکجه • ‎سنڌي • ‎فارسی • ‎پښتو • ‎अङ्गिका • ‎अवधी • ‎मराठी • ‎हिन्दी • ‎বাংলা • ‎ไทย • ‎ქართული • ‎中文 • ‎日本語 • ‎ꯃꯤꯇꯩ ꯂꯣꯟ • ‎한국어
PD Зверніть увагу! Коли Ви редагуєте цю сторінку, то погоджуєтесь робити свій внесок під ліцензією CC0. Детальніше про умови ліцензії можна дізнатися на сторінці довідки.
PD

TemplateData – спосіб збереження інформації про шаблон вікітексту і його параметри так, аби Візуальний редактор міг отримувати і відображати їх у редакторі шаблонів, таким чином полегшуючи редагування сторінок, які використовують цей шаблон. Він також використовується деінде у скриптах, інструментах і гаджетах.

Розширення TemplateData встановлено на всі Вікіпедії, оперовані Фондом Вікімедіа. Якщо ви маєте власну Вікіпедію, тоді вам необхідно встановити Extension:TemplateData.

Синтаксис TemplateData дозволяє користувачам зберігати незначний об'єм структурованих даних на сторінці шаблону або ж робити включення цих даних на сторінку шаблону (наприклад, із його підсторінки документації). Якщо шаблон має такі структуровані дані, він буде відображений відповідним чином у Візуальному редакторі. Це може звучати дещо заплутано, але насправді все дуже просто.

Редактор TemplateData

Існує вбудований інструмент для простішого редагування TemplateData.

Щоб використовувати редактор TemplateData editor, перейдіть на сторінку шаблона (або його підсторінку документації) і натисніть кнопку «Редагувати». Ви побачите кнопку «Управління TemplateData» одразу над відкритим полем редагування:

Manage template documentation button for TemplateData 2014.png

Натисніть цю кнопку для входу у графічний інтерфейс інструменту для редагування TemplateData.

Скриншот інструменту редагування TemplateData

Редактор дозволяє вам додавати параметри шаблону та встановлювати найпоширеніші атрибути. Якщо сторінка, яку ви редагуєте, вже містить блок TemplateData, то вже документована інформація автоматично показуватиметься, коли ви відкриєте коректну сторінку в редакторі TemplateData. У першому полі ви можете додати чи оновити короткий опис шаблону простим текстом. Після цього ви можете використати кнопки «Додати пропонований(і) параметр(и)» для документування імен і атрибутів параметрів, які використовує шаблон.

Якщо документацію шаблону наявна на підсторінці, кнопка «Додати suggested параметр(и)» з'являтиметься тільки на сторінці шаблону. Вирішенням є редагувати сторінку шаблону, натиснути «Додати пропонований(і) параметр(и)» у редакторі TemplateData, а потім копіювати та вставити вміст TemplateData (між тегами <templatedata> і </templatedata>) на підсторінку документації.

Якщо сторінка шаблону захищена, ви можете скопіювати та вставити код на підсторінку, використати кнопку «Додати пропонований(і) параметр(и)» там, скопіювати вміст TemplateData, повернутися редагувати підсторінку, щоб позбутися коду шаблону, а потім вставити вміст TemplateData. Аби знати, де вставляти вміст TemplateData всередині підсторінки, ви можете редагувати TemplateData без додавання будь-якого, ви можете потім замінити теги <templatedata> і </templatedata> та їхній вміст вставкою поверх них.

Ви можете вказати назву параметра, перерахувати будь-які його псевдоніми чи альтернативні написання, а також задати його назву та опис, які будуть показані користувачам. Ви також можете надати приклад використання параметру. Єдиним обов'язковим для заповнення полем є Назва (перше поле кожного рядка), в якому треба вказати точну назву параметру, із врахуванням регістру. У спадному меню «Тип» Ви можете вибрати тип вмісту, яким має бути заповнений параметр, наприклад, «рядок» (для заповнення звичайним текстом), «сторінка» (для посилань на інші сторінки), чи «дата». Коли Вам відомо, що якщо залишити певний параметр незаповненим, то шаблон відображатиметься з помилками — будь ласка, позначте такий параметр як «обов'язковий». Якщо ж параметр використовується часто, або є рекомендованим — позначте його як «пропонований». Кнопка «Вилучити інформацію про параметр» вилучить запис для цього параметра із TemplateData.

Скриншот редактора TemplateData, що показує додавання другого параметру

Після завершення документування усіх параметрів, натисніть кнопку «Застосувати», щоб вставити попередньо відформатований код TemplateData у відкрите вікно редагування. Після цього все одно ще треба зберегти сторінку, натиснувши вже звичну кнопку «Зберегти сторінку» під вікном редагування.

Увага: Редактор TemplateData розмістить TemplateData на сторінці шаблону або на підсторінці документації. Ви визначаєте, де TemplateData буде додано, відкривши (відредагувавши) сторінку, на яку Ви хочете додати TemplateData. Однак, якщо багато блоків TemplateData додаються в той самий шаблон, лише один з блоків TemplateData буде використано. Якщо на сторінці уже є TemplateData, то Вам треба відредагувати сторінку, де TemplateData було додано перед тим, щоб уникнути випадкового створення кількох блоків TemplateData.

Обмеження і запитання

  • Відсутні функції — TemplateData є, значною мірою, прикладом інструмента, який став доступним з кількома функціями, в надії, що користувачі допоможуть спрямувати розвиток функцій у бажане для них русло. Якщо Ви хочете подати запит на нові функції TemplateData, будь ласка, дайте нам знати.
  • Затримки у відображенні в шаблонах — Після додавання TemplateData до шаблону, метадані повинні бути видимі миттєво, як тільки шаблон буде відкрито у Візуальному редакторі. Однак існує ймовірність, що оновлення метаданих займе більше часу — навіть до кількох годин. Ви можете пришвидшити оновлення, виконавши нульове редагування сторінки самого шаблону (але не сторінки документації). Для виконання нульового редагування відкрийте сторінку шаблону для редагування, та збережіть її без внесення будь-якої зміни і без додавання будь-якого опису редагування.
  • Поточні проблеми — Список поточних баґів та запитів на функції можна переглянути на баґтрекері Вікімедіа.

Розташування TemplateData

TemplateData повинні бути на сторінці, яку вони описують, або бути transcluded у неї. У шаблоні вони зазвичай обгортатимуться у теги <noinclude> . На рендерингу звичайної сторінки вони показують автозгенеровану документацію, як показано на #Прикладі.

Структура TemplateData

Структура TemplateData базується на стандартах JSON. Зауважте, що всі описи у TemplateData мають бути подані простим текстом (без вікірозмітки, без посилань тощо).

Перше, що треба зробити — це додати пару тегів <templatedata> будь-де на підсторінці документації, ось так:

<templatedata>
{
    ...       // вміст TemplateData іде сюди
}
</templatedata>

Цим Ви повідомите програмі, що все, що розташоване між цими двома тегами, є документацією TemplateData, і саме звідти треба брати інформацію при використанні шаблону.

Приклад

Описи всередині TemplateData даються за стандартним форматом; скажімо, Ви маєте шаблон під назвою «Commons», що веде на категорію Вікісховища на певну тематику. Він містить лише один обов'язковий параметр: назва категорії на Вікісховищі. У такому випадку блок TemplateData виглядатиме якось так:

<templatedata>
{
    "description": "Шаблон для посилання на категорію на Вікісховищі за темою статті",
    "params": {
        "1": {
            "label": "Категорія на Вікісховищі",
            "description": "Категорія на Вікісховищі, на котру ви хочете вказати посилання.",
            "default": "Category:CommonsRoot",
            "type": "string",
            "required": true
        }
    }
}
</templatedata>

На сторінці шаблону це виглядатиме так:

Шаблон для посилання на категорію на Вікісховищі за темою статті

Template parameters

ParameterDescriptionTypeStatus
Категорія на Вікісховищі1

Категорія на Вікісховищі, на котру ви хочете вказати посилання.

Default
Category:CommonsRoot
Stringrequired

Опис та параметри

description Перший тег — "description", він описує, що робить шаблон.
"description": "Шаблон для посилання на категорію на Вікісховищі за темою статті",
format Наступним є "format", який описує, як подання вікі-тексту шаблону повинно бути викладено. Це може бути встановлено у стандартні формати "inline" (за замовчуванням) та "block", або у спеціальний формат, детальніше див. нижче.

Якщо параметр встановлено в "inline", подання вікі-тексту створюватиметься без пропусків, на кшталт:

{{Foo|bar=baz|qux=quux}}

Якщо параметр встановлено у "block", подання вікі-тексту створюватиметься з розривами рядків й одинарними пропусками між кожною частиною, на кшталт:

{{Foo
| bar = baz
| qux = quux
}}
"format": inline
params Далі йде тег "params", який говорить про те, що наступні секції стосуватимуться кожного параметра шаблону.

Усі наступні параметри мають бути включені у секцію "params".

"params": {
    ...    // параметри йдуть сюди
}
  У підсекції кожного параметра перший тег відповідає технічній назві параметра шаблону у самому шаблоні.

Якщо параметр має назву на кшталт {{{посилання-на-категорію}}}, цей тег буде "посилання-на-категорію".

Якщо такий параметр є «без назви», тобто це просто цифра на кшталт {{{1}}}, цей тег буде "1".

Вся інформація, що стосується конкретно цього параметру, буде включена у секцію, що починається із назви параметра.

"1": {     // назва параметра
    ...    // інформація про параметр іде сюди
}
label Далі є тег "label", в якому треба вказати зручну для читання назву параметра, яка й відображатиметься у редакторі шаблонів.
"label": "Категорія на Вікісховищі",
description Далі йде "description": цього разу, це — опис параметра, а не всього шаблону.
"description": "Категорія на Вікісховищі, на котру ви хочете вказати посилання.",
default Наступним йде "default". Окремі шаблони мають стандартне значення, яке буде використане, якщо Ви його не зміните. Цей елемент повідомляє користувачеві, яке стандартне значення для цього параметра.

Ви можете проігнорувати заповнення цього параметра, якщо стандартне значення для нього відсутнє.

"default": "Category:CommonsRoot",
type Після цього ми маємо "type", що відповідає за те, яким чином редактор шаблонів інтерпретує цей параметр. Тут можна вказати:
  • "string": набір символів, наприклад фраза;
  • "number": набір цифр;
  • "boolean": '0' for false, '1' for true, '' for unknown;
  • "wiki-user-name": набір символів, що являє собою ім'я користувача;
  • "wiki-page-name": набір символів, що являє собою заголовок сторінки.
  • "wiki-file-name": назва файлу.

Інші типи включать: "unknown", "date", "url", "wiki-template-name", "content", "unbalanced-wikitext", "line"

"type": "string",
required Також у нас є "required", котрому можна надати значення або true, або false.

Воно просто визначає, чи буде заповнення параметра обов'язковим для цього шаблону. Якщо не вказати ніякого значення, автоматично буде використано значення false.

"required": true
suggested Наявне "suggested", яке можна встановити або в true, або в false.

Це — статус для параметрів, які не є «обов'язковими», але їх використання рекомендоване (але не необхідне) через значну цінність для користувачів шаблонів. Якщо нічого не вказувати, автоматично буде використано значення false.

"suggested": true
deprecated Нарешті, наявний "deprecated", який можна встановити у true, false чи рядок, який описує, що користувач повинен натомість зробити.

Це стан для параметрів, які більше не повинні використовуватися, але досі існують на даний час. Це можливо, оскільки використання шаблону переміщується з однієї множини параметрів до іншої. Якщо не задано, воно припускатиметься як false.

"deprecated": "Натомість використовуйте, будь ласка, «publicationDate»."

Після завершення редагування натисніть «Зберегти сторінку». Якщо ви десь зробили помилку, система не дозволить Вам зберегти редагування (це трохи дратує, але завдяки цьому Ви нічого не пошкодите у коді). Якщо ж Ви натрапите на помилки у самій програмі, поясніть на сторінці відгуків, що саме Ви намагалися зробити, і ми будемо раді допомогти Вам.

Зауважте, що, якщо ви зловживаєте хакерським шаблоном для динамічної генерації TemplateData, він не може перевірятися на помилки перед збереженням.

Зверніть увагу, що кожна порція інформації береться у лапки (за винятком true та false), і відокремлюється від наступної порції комою (за винятком останньої).

Спеціальні формати

При редагуванні рядків спеціального формату в редакторі TemplateData ви можете або набрати \n, або натиснути клавішу Enter для подання нового рядка; в будь-якому разі він показуватиметься як у полі введення.

Приклади форматів, які ви можете використовувати
Мета Рядок формату Виведення
Рядкове форматування {{_|_=_}}
inline
{{Foo|bar=baz|qux=quux}}{{Bar}}
Блокове форматування {{_\n| _ = _\n}}
block
{{Foo
| bar = baz
| qux = quux
}}{{Bar
}}
Без пропуску перед іменем параметру,

кожен шаблон на своєму власному рядку

\n{{_\n|_ = _\n}}\n
{{Foo
|bar = baz
|qux = quux
}}
{{Bar
}}
Відступ кожного параметру {{_\n |_ = _\n}}
{{Foo
 |bar = baz
 |qux = quux
}}{{Bar
}}
Вирівнювати всі імена параметрів до даної довжини {{_\n|_______________ = _\n}}\n
{{Foo
|bar             = baz
|qux             = quux
|veryverylongparameter = bat
}}
{{Bar
}}
Pipe-символи наприкінці попереднього рядка {{_|\n _______________ = _}}
{{Foo|
  bar             = baz|
  qux             = quux}}{{Bar}}
Рядковий стиль із більшою кількість пропусків повинен бути на початку рядка \n{{_ | _ = _}}
{{Foo | bar = baz | qux = quux}}
{{Bar }}
Шаблон на початку рядка, вирівняні відступи параметрів, вертикальна риска завчасно \n{{_ |\n _______________ = _}}
{{Foo |
  bar             = baz |
  qux             = quux}}
{{Bar}}

Псевдоніми параметрів

Деякі шаблони дозволяють мати різні назви для одного й того ж параметра.

Наприклад, {{Commons|category=Apples}} можна також записати як {{Commons|Apples}}, або {{Commons|link=Apples}}.

Щоб додати цю інформацію до TemplateData, Вам треба просто додати синоніми до інформації про параметр:

    "params": {
        "категорія": {
            ...
            "aliases": ["1", "посилання"]
        }

Автозначення

Ви можете задати «автозначення» для певного параметра. Коли користувачі додаватимуть шаблон на сторінку, це значення буде заповнюватись автоматично. Наприклад, чимало шаблонів упорядкування потребують додавання дати; якщо ж Ви встановите автозначення для параметра дати, тоді дата буде заповнюватись автоматично.

Щоб додати таку інформацію до TemplateData, просто добавте автозначення до інформації про параметр. Найімовірніше, Вам треба буде використати subst: для того, аби закріпити такі значення.

    "params": {
        "дата": {
            ...
            "autovalue": "{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}"
        }

Декілька параметрів

Якщо шаблон має багато параметрів, просто повторюйте кожну секцію заново (починаючи з тегу "1") і заповнюйте все так, як Вам зручніше. Зверніть увагу, що якщо шаблон має багато параметрів, Вам необхідно відокремлювати їх комами в коді TemplateData, ось так:

"params": {
    "1": {
        ...
    },      // зверніть увагу на кому тут
    "2": {
        ...
    },      // і тут
    "3": {
        ...
    }
}

Подібні параметри

Якщо шаблон має багато параметрів, іноді окремі з них можуть бути одного виду. В такому випадку Вам треба лише повністю заповнити перший з них, а інші можуть перейняти ("inherit") властивості від нього.

    "params": {
        "тема1": {
            "label": "Тема",
            "description": "Тема, що згадується на цій сторінці неоднозначності",
            "type": "string"
        },
        "тема2": {
            "inherits": "тема1"
        },
        "тема3": {
            "inherits": "тема1"
        },
    }

Порожня заготовка

Ви можете скопіювати порожній макет нижче, аби додати новий блок TemplateData до шаблону. У цей макет включені лише найчастіше вживані теги.

<templatedata>
{
    "description": "",
    "params": {
        "1": {
            "label": "",
            "description": "",
            "type": ""
        },
        "2": {
            "label": "",
            "description": "",
            "type": ""
        }
    }
}
</templatedata>

Errors

Syntax Error in JSON / Bad JSON format

Due to a long standing bug, users using the old wikitext editor are able to save pages which have certain types of invalid JSON, such as duplicate keys or trailing commas (details: task T128029). However if you attempt to save this page in a JavaScript based editor, such as VisualEditor or the 2017 Wikitext editor, you will see an error message "Syntax error in JSON," as the JavaScript parser is stricter and doesn't allow invalid JSON. Additionally, if you attempt to open up such invalid JSON with the Template Data GUI editor, you will see the error message, "Bad JSON format." To fix these errors, you can enter the JSON block into an external JSON validator, such as https://jsonlint.com/, and it will highlight the problematic commas and keys so they can be removed.

Інші інструменти

Help:Extension:TemplateWizard
Діалогове вікно панелі інструментів для введення вікі-тексту шаблону через форму, що будується з TemplateData.
TemplateData Wizard
Інструмент, що генерує TemplateData через інтерактивний інтерфейс.
Skeleton TemplateData generator
Інструмент, що зчитує вихідний код шаблона, намагається відшукати усі параметри, що в ньому використовуються, та продукує макет TemplateData із вже занесеними до нього параметрами.
JSONLint
Інструмент, що дозволяє перевірити написаний вручну код JSON, відшукуючи помилки у синтаксисі.