Шаблони — це спеціальний клас сторінок Вікіпедії, вміст яких динамічно включається в текст інших сторінок.

Загальна інформація ред.

Сторінки шаблонів Вікіпедії є повноцінними сторінками Вікіпедії або будь-якого проєкту фонду Вікімедіа, для яких відведено власний простір назв Шаблон:. Типово у Вікіпедії їх дозволено редагувати усім користувачам.

Вікірозмітка для виклику шаблону на сторінці складається з пари відкривальних фігурних дужок ({), назви шаблону, і пари закривальних фігурних дужок (}):

{{<Назва шаблону>}}

При перегляді сторінки, замість цього коду буде вставлено текст шаблону із назвою <Назва шаблону>. Якщо шаблон {{назва шаблону}} ще не існує, то відобразиться «червоне» посилання на відсутню сторінку: Шаблон:Назва шаблону. Щоб уникнути цього, переконайтесь перед збереженням сторінки, що усі використані Вами шаблони існують. Зробити це можна скориставшись функцією попереднього перегляду.

Статті з головного простору назв можна використовувати так само як і шаблони додаючи двокрапку (:) перед назвою статті, за допомогою такої синтаксичної конструкції:

{{:Назва статті}}

Це корисно для вбудовування сторінок одна в одну і комплектування «комплексних» сторінок, які складаються з окремих розділів, що, в свою чергу, можуть бути окремими сторінками, ба, навіть, статтями. У багатьох Вікіпедіях така можливість використовується для будування, наприклад, сторінок багатозначності, що містять переліки окремих значень поняття.

Якщо назва сторінки — це зображення чи категорія, то виклик шаблону поверне опис зображення чи категорії. Така можливість використовувати будь-яку сторінку як шаблон дає змогу експериментувати із шаблонами, не створюючи зайвих сторінок у просторі назв Шаблон:, чи використовувати підписи та пояснення до зображень.

Пам'ятайте, що назва сторінки (також шаблону) у Вікіпедії чутлива до регістру (окрім першої літери).

Допускається рекурсивне включення шаблонів.

Значення параметрів (у термінах програмування — змінних) шаблону підставляються після повної обробки питомої сторінки, тобто, наприклад, якщо шаблон містить параметри, або парсерні функції, що залежать від сторінки (або часу) його розміщення/включення — він буде повертати текст або значення, які залежать від поточного його розміщення, тобто, наприклад парсерна функція {{PAGENAME}} у шаблоні — повертає назву поточної сторінки у якій міститься (розгортається) шаблон, проте, на сторінці самого шаблону — поверне назву сторінки шаблону (без префіксу простору назв Шаблон:.).

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

Способи використання ред.

Зазвичай шаблони використовуються таким чином: у подвійних фігурних дужках {{ }} прописується назва шаблону — частина назви сторінки шаблону одразу після префіксу простору назв Шаблон:. У включеннях шаблонів перша літера одразу після префіксу простору назв Шаблон: може бути і великою, і маленькою. Наприклад: {{Назва шаблону}} або {{назва шаблону}}. Для відокремлення назви шаблону від його параметрів, а також наступних параметрів один від одного використовується вертикальна риска (пайп) (|). Існують нумеровані та іменовані параметри (наприклад, параметр (date= у шаблонах упорядкування — іменований параметр, оскільки має власну назву; нумеровані параметри не мають власної назви). Для увімкнення деяких параметрів необхідно надати їм чітко визначене значення (наприклад, {{Navbox|name=Box}}), тоді як для увімкнення інших параметрів вистачає, якщо надати їм будь-яке значення (усе залежить від того, як ці параметри прописані в коді шаблону). Для чіткого окреслення порядку нумерованого параметра перед його значенням можна додати його номер (наприклад, 1= для першого параметра).

  Правила використання майже кожного шаблону, чий функціонал та особливості використання відрізняються від інших, містяться на його підсторінці документації, сторінці обговорення чи в його коді. Будь ласка, дотримуйтеся їх. У незрозумілих випадках звертайтеся насамперед до інтервікі — посилань на Вікіданих, оскільки більшість шаблонів створено та адаптовано з іншомовних розділів Вікіпедії (переважно з англійського та російського, а також з інших великих розділів Вікіпедії), або до досвідчених користувачів, які можуть допомогти в роботі з шаблонами.

Включення ред.

Включення — це стандартне використання шаблону, що являє собою включення вмісту певної сторінки (зазвичай шаблону) в іншу сторінку, вказавши назву доданої сторінки. При такому використанні вміст доданої сторінки (шаблону) не переноситься до коду цільової сторінки. Подібно до того, як будь-яка назва сторінки може стати посиланням, якщо її розмістити у подвійних квадратних дужках, будь-яка назва сторінки може стати шаблоном, якщо її розмістити у подвійних фігурних дужках, {{Простір назв:Назва сторінки}}. Шаблони можуть бути одночасно включені на багатьох різних сторінках, тому зміни, внесені до шаблону, автоматично відображаються на всіх сторінках, у які він був включений. У цьому прикладі зображено шаблон «B», код якого містить лише слово foo, та як його включення відображається на сторінках, у яких він включений.

 

Підстановка ред.

На відміну від включення, при використанні підстановки код шаблону переноситься безпосередньо в тіло сторінки. Для підстановки шаблону використовується {{subst:Назва шаблону}}. На сторінках документації шаблонів має бути чітко прописано, якщо вони використовуються з підстановкою.

Параметри ред.

Параметр шаблону — це інструмент, який може бути використаний за допомоги функцій парсера — розширення рушія MediaWiki. Функції парсера використовуються при створенні та використанні (включенні) шаблонів, зокрема інфобоксів. Параметри шаблону застосовують у тому разі, коли необхідно передбачити можливість дописати в шаблон певну інформацію, оригінальну для кожної даної статті. Шаблон може не використовувати жодного параметру (наприклад Шаблон:Без ілюстрацій), використовувати один параметр (наприклад Шаблон:Messier) або використовувати багато параметрів (наприклад Шаблон:Зображення).

У коді вікірозмітки характерною особливістю параметра є його розміщення в потрійних фігурних дужках всередині коду шаблону. Таким чином, механізм шаблонів виконує два типи підстановок:

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

Приклад: Параметром шаблону може бути посилання на іншу статтю. Нехай у нас є Шаблон:X із наступним кодом:

Початок {{{1}}} Кінець.

Тоді {{X|[[Main Page|Головна сторінка]]}} буде розгорнуто в

Початок Головна сторінка Кінець.

Типи параметрів ред.

Розрізняють два типи параметрів шаблонів:

  • іменовані параметри: напр. {{{назва параметра}}}, {{{населення}}}, {{{вартість}}} тощо,
  • нумеровані параметри (неіменовані): напр. {{{1}}}, {{{2}}}, {{{3}}} тощо.

  У різних мовних розділах Вікіпедії затверджені чи усталені (як найпоширеніші) різні конвенції найменування параметрів. Однак, слід зважити на те, що параметри в MediaWiki по-різному сприймають великі та малі літери, тому, наприклад, {{{еквівалент НАТО}}} та {{{еквівалент нато}}} — це два різні параметри. Крім того, пробіли та нижні підкреслення сприймаються так само по-різному, тому {{{еквівалент НАТО}}} i {{{еквівалент_НАТО}}} — це теж два різні параметри.

Імена параметрів чутливі до регістру, пробілів, підкреслень та інших символів не з набору [a-z\-A-Z0-9]. Без аргументованої необхідності у назвах іменованих параметрів слід використовувати малі літери, за винятками: метапараметри (параметри, призначені для самого шаблону), або, коли вони позначають власну назву, акронім, наприклад, ЄДРПОУ.

Зайві параметри, що не використовуються в тексті шаблону, ігноруються.

Іменовані ред.

Зазначені вище типи параметрів відрізняються за способом свого виклику (використовуючи шаблон у вихідному коді). Код

{{Шаблон|назва=вміст|назва2=вміст2}}

викликає шаблон під назвою Шаблон, параметр назва включає вміст, а параметр назва2 включає вміст2. Порядок іменованих параметрів у вихідному коді не має значення, тому результат буде ідентичним, якщо прописати так:

{{Шаблон|назва2=вміст2|назва=вміст}}

Якщо певний параметр someparameter не визначено, він передається нерозкритим текстом {{{someparameter}}} на сторінку, де він викликаний; у разі рекурсивного виклику його можна розкрити на наступному рівні.

Нумеровані ред.

Нумеровані параметри прописуються наступним чином:

{{Шаблон|вміст|вміст2}}

  Нумеровані параметри можна (а іноді й потрібно) прописувати в шаблоні як іменовані, надавши кожному параметру відповідний порядковий номер за типом: |1=вміст|2=вміст2.

Прописавши так, одержимо аналогічний результат:

  • нумерування параметрів:
{{Шаблон|1=вміст|2=вміст2}}
  • зміна порядку параметрів:
{{Шаблон|2=вміст2|1=вміст}}
  • так теж можна:
{{Шаблон|вміст|2=вміст2}}
{{Шаблон|2=вміст2|вміст}}
  • а так уже неправильно:
{{Шаблон|1=вміст|вміст2}}
{{Шаблон|вміст2|1=вміст}}

  Насправді нумеровані параметри є іменованими параметрами, імена яких є послідовними номерами. Коли всі параметри у вихідному коді названі, то їхній порядок не має значення.

Зауважте різницю у викликах: виклик {{Шаблон||a}} встановлює значення першого параметру рівним порожньому рядку. Аби присвоїти значення другому параметру, не визначаючи значення першого, скористайтеся викликом {{Шаблон||2=a}}.

Також, виклик {{Шаблон|a=b|c}} визначить параметр «a» і не встановить параметр «1». Аби правильно визначити обидва параметри, скористайтеся наступною синтаксичною конструкцією {{Шаблон|1=a=b|2=c}}.

Умовне включення параметрів ред.

Якщо поява нерозкритого тексту не бажана, можна використовувати умовне включення параметра в текст шаблону. Параметр, записаний у формі {{{parameter|альтернативний текст}}}, буде включений в текст шаблону тільки в тому разі, якщо значення параметра задано, інакше замість значення параметра з'явиться альтернативний текст. Цей спосіб доречний тоді, коли для деякого параметра шаблону передбачається певне значення за замовчуванням. Найпростіший приклад: якщо деякий параметр parameter записаний усередині шаблону у формі {{{parameter|}}} (тобто якщо в якості альтернативного тексту використано порожній рядок), на його місці не виводитиметься взагалі нічого (навіть {{{parameter}}}), якщо цей параметр виявиться не заданим. Можливі три варіанти:

  • значення за замовчуванням відсутнє, наприклад, {{{1}}}, {{{назва міста}}} тощо. Якщо цей параметр не буде заповнений, шаблон відображатиме його назву.
  • порожнє значення за замовчуванням, наприклад, {{{1|}}}, {{{назва міста|}}} тощо. Якщо у включенні відповідний параметр не заповнений, шаблон, залежно від налаштувань, не покаже нічого або покаже порожній рядок.
  • прописуване значення за замовчуванням, наприклад, {{{1|100%}}}, {{{назва міста|Київ}}}, {{{2|{{{3}}}}}}, {{{2|{{{місто|}}}}}} тощо. Якщо відповідний параметр не заповнений, буде показано значення чи параметр після символу "|".

  Текст значення за замовчуванням прописується після символу "|". Це може бути порожнє місце, рядок символів, число, але й також інший параметр (він також може бути умовним параметром) або навіть шаблон з параметрами чи без.

Іноді виникає необхідність змінити в тексті шаблону щось більше, ніж сам параметр, якщо цей параметр не заданий. Для цієї мети використовуються умовні функції парсера: {{#if}} та інші. {{#if}} викликається наступним чином:

  {{#if:  перевірювана-змінна-або-параметр  
| текст-для-випадку,-коли-значення-test-не-пусте  
| текст-для-випадку,-коли-значення-test-пусте  
   }}

Кожен рядок після умови не є обов'язковим, тому можна використовувати скорочені форми:

  {{#if:  змінна-перевірки-або-параметр  
| текст-для-випадку,-коли-значення-test-не-пусте  
   }}
  {{#if:  змінна-перевірки-або-параметр  
|| текст-для-випадку,-коли-значення-test-пусте  
   }}

Демонстраційний приклад вживання:

  {{#if: {{{sample|}}}
 |параметр '''sample'''визначено! 
 |параметр'''sample'''порожній! 
    }}
Ефект порожніх рядків

Розглянемо приклад роботи комбінації з трьох умовних операторів:

{{#if: {{{sample1|}}}|'''sample1'''! }}
 {{#if: {{{sample2|}}}|'''sample2'''! }}
{{#if: {{{sample3|}}}|'''sample3'''! }} 

Якщо всі оператори визначені, то значення шикуються в один рядок. Проте, коли другий оператор не визначений, між першим і третім оператором з'являється зайвий рядок:

Ситуація Код при виклику шаблону Код Результат
Всі оператори визначені
|sample1=sample1
|sample2=sample2
|sample3=sample3
{{#if: {{{sample1|sample1}}}|'''sample1'''! }}
{{#if: {{{sample2|sample2}}}|'''sample2'''! }}
{{#if: {{{sample3|sample3}}}|'''sample3'''! }}

sample1! sample2! sample3!

Другий оператор не визначено
|sample1=sample1
|sample2=
|sample3=sample3
{{#if: {{{sample1|sample1}}}|'''sample1'''! }}
{{#if: {{{sample2|}}}     |'''sample2'''! }} 
{{#if: {{{sample3|sample3}}}|'''sample3'''! }}

sample1!

sample3!

Порожній рядок між першим і третім рядком виникає через те, що умовний оператор другого рядка повернув ніщо , і підсумкова конструкція після обробки парсером приймає такий вигляд:

'''sample1'''! 
< порожній рядок > 
'''sample3'''! 

Такий ефект може виявлятися в шаблонах-картках, коли на місці невизначених параметрів з'являється порожній простір. Щоб не допустити подібного ефекту, необхідно не допускати перенесення рядка між умовними операторами. Цього можна домогтися декількома способами:

Спосіб Код Результат
Писати всі умовні параметри в один рядок
{{#if: {{{sample1|sample1}}}|'''sample1'''! }}{{#if: {{{sample2|}}}|'''sample2'''! }}{{#if: {{{sample3|sample3}}}|'''sample3'''! }}

sample1!sample3!

Включати коментарі для виключення знака переносу
{{   #if: {{{sample1|sample1}}}|'''sample1'''! }}<!--роздільник 
-->{{#if: {{{sample2|}}}      |'''sample2'''! }}<!--роздільник 
-->{{#if: {{{sample3|sample3}}}|'''sample3'''! }}

sample1!sample3!

Робити переноси всередині умовних операторів, а не між ними
{{
#if: {{{sample1|sample1}}}|'''sample1'''! 
}}{{
#if: {{{sample2|}}}     |'''sample2'''! 
}}{{
#if: {{{sample3|sample3}}}|'''sample3'''! 
}}

sample1!sample3!

Перегляд вмісту шаблону ред.

Переглядайте текст шаблону в режимі редагування, оскільки на простому перегляді змінні та інші шаблони, наприклад Шаблони, будуть замінені їхніми значеннями.

Теги noinclude та includeonly ред.

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

Для розміщення у шаблоні додаткової інформації — наприклад правил використання шаблону або категорії шаблону, яка не повинна відображатись в статтях, в яку включається даний шаблон, таку інформацію слід розмістити наступним чином: <noinclude>Додаткова інформація (''наприклад'': шаблон використовується для...)</noinclude>. В протилежному випадку — якщо нам слід закласти в шаблон інформацію, яка має відображатись в статтях, в яких цей шаблон включається, але не повинна впливати на сам шаблон (найчастіше це — категоризація статті) — слід писати <includeonly>Додаткова інформація, (''наприклад:'' [[Категорія статті]]) </includeonly>

He допускайте порожніх рядків навколо конструкцій <noinclude> і <includeonly>, так як порожній рядок буде тлумачитися як перенесення рядка, що буде додано шаблоном у статтю.

Посилання на редагування шаблону ред.

Іноді бажано мати посилання на сторінку редагування шаблону в тексті самого шаблону (наприклад, якщо його вміст може часто змінюватися). Таке посилання можна «зашити» всередину самого шаблону, більш того, зробити саме шаблоном. Див. Шаблон:ed, приклад використання: {{ed|{{PAGENAMEE}}|{{NAMESPACE}}:{{PAGENAME}}}} дасть ред. Довідка:Шаблони.

Обмеження й можливості ред.

Використання вкладених подвійних чи потрійних фігурних дужок всередині подвійних вкладених дужок ред.

Через використання подвійних і потрійних дужок зміст виразу може бути невизначеним. Наприклад замість

{{{{{abra}}}}}

слід використовувати або

{{{ {{abra}} }}}

— повернене шаблоном abra значення є назвою параметра даного шаблону, або

{{ {{{abra}}} }}

— значення параметра abra є назвою шаблона, вкладеного в даний. Уникайте, однак зайвих пробілів.

Тег категорії в шаблоні. Проблема кешування ред.

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

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

Рекомендується використовувати категорії у шаблонах типу {{TODO}} для «маркування» статей певного типу, та не рекомендується використання у навігаційних шаблонах.

Кешування ред.

Редагування шаблону автоматично очищає кеш сервера від усіх статей що безпосередньо його використовують. Однак у випадах непрямого виклику (рекурсивний виклик, шаблони які залежать від параметрів тощо.), внутрішній кеш системи не очищується і стандартний «Refresh» браузера може не працювати. У таких випадках використовуйте «action=purge», тобто переходьте за URL типу:

 [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|action=purge}} Очистити кеш сторінки]

що буде відображено як:

Очистити кеш сторінки

Або ви можете просто скористатися готовими шаблонами: Шаблон:Purge: очистити кеш; {{Очистити кеш}}: очистити кеш.

Підстановка в ref і gallery ред.

Підстановка subst і параметри ({{{1}}}) не працюють в тегах ref і gallery. Це можливо обійти, використавши магічне слово tag.

Меташаблони ред.

Меташаблони або Шаблони-контейнери — такі шаблони Вікіпедії, які призначені для використання у інших користувацьких шаблонах.

Див. також категорію К:Шаблони-контейнери (0)

Див. також ред.

Коли сторінка, викликана для включення, є сторінкою-перенаправленням, буде включено вміст сторінки на яку вказує редирект (перенаправлення).

Посилання на шаблон ред.

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

Історія змін для сторінок, що містять шаблони ред.

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