Ukr:Довідка:Шаблони

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

Шаблон - це особлива сторінка вікі, вміcт якої може динамічно включатися (англ. transcluded) до інших сторінок.

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

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

Шаблони в двох словах
Назва сторінки шаблону містить префікс " " (в тестовому режимі не перекладається українською), що відносить її до простору назв "   ". Створити її можна так само, як і будь-яку іншу сторінку вікі.

Якщо ти створиш, приміром, сторінку шаблону "Template:Ukr/Вітання", яка містить такий текст:

Вітаємо в українській Скретч вікі!

то вставити цей текст до будь-якої іншої сторінки можна за допомогою синтаксису:

При перегляді сторінки, до якої включено цей шаблон, читач побачить "Вітаємо в українській Скретч вікі!" замість розмітки.

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

Привіт! Це українська Скретч вікі.

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

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

Включення шаблону
Шаблони можна включати до інших сторінок в різних режимах:


 * . Звичайна форма і основний спосіб використання. Як сказано вище, динамічно включає вміст сторінки Template:Ukr/Назва шаблону до сторінки з таким посиланням. Якщо шаблон містить елементи програмування, вони виконуються і відображується результат.
 * . Така розмітка відрізняється від попередньої тим, що обробка шаблону виконується не при кожному перегляді, а при збереженні сторінки. До тексту включається результат, наче фото. Він залишатиметься при перегляді саме таким, незважаючи на подальші зміни шаблону, аж до наступного редагування сторінки з цією розміткою.
 * . Така розмітка є варіантом попередньої, створеним для складних випадків підшаблонів і рекурсивного виконання шаблону.
 * . Така розмітка динамічно включає вихідний текст шаблону, без виконання, при кожному перегляді сторінки.

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

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

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

Нехай ти хочеш додати на сторінку обговорення якогось дописувача невеличку подяку:

Примітка-подяка має причину (в цьому прикладі "all your effort") та підпис ("Me"). Таким чином, цей шаблон  може бути застосований будь-яким дописувачем для висловлення подяки за будь-що.

Хоча примітка-подяка виглядає кожного разу так само, вміст її розрізняється. Цей вміст для відображення створюється параметрами: причина та підпис. Всередині цього шаблону має бути написано (на додачу до подробиць форматування) приблизно таке:

A little thank you... for. hugs,

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

При застосуванні шаблону на сторінці ти вказуєш значення параметрів, розділяючи їх вертикальними рисками |. Рушій MediaWiki підтримує три способи передачі значень параметрів до шаблону.

Анонімні параметри
Анонімні, або позиційні, параметри передаються просто списком, значення розділені вертикальною рискою |. Номер параметру всередині шаблону – це його позиція у списку, відлік починається з 1.

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

Якщо змінити послідовність параметрів у цьому списку:

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

Отже, послідовність, в якій вказано анонімні параметри, є критичною.

Іменовані параметри
Другий спосіб передавання параметів полягає в призначенні їм назв. Текст шаблону можна змінити в такий спосіб:

A little thank you... for. hugs,

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

Тут послідовність, в якій указано параметри, уже несуттєва. Шаблон  у даному прикладі отримує такі значення параметрів:   та. Це приводить до такого відображення:

Переваги застосування такого способу передавання параметрів: Недоліком, вочевидь, є трохи довший запис при включенні шаблону.
 * можливість вказати значення певних параметрів і не вказувати значення інших;
 * більш зрозумілий текст шаблону у випадку, коли параметрів багато.

Нумеровані параметри
Фактично це іменовані параметри, для назв яких застосовано натуральні числа 1, 2, 3 тощо.

Шаблон  отримує у цьому прикладі значення параметрів   та , що дає таке відображення:

Значення за замовчуванням
Якщо включити шаблон, що очікує параметрів, але не подати їхніх значень, приміром, так:

отримаємо таке відображення:

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

Всередині шаблону значення параметру за замовчуванням визначається звичним синтаксисом для підставлення відображуваного тексту, за допомогою вікірозмітки |:

A little thank you... for. hugs,

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

Керування включенням елементів шаблону
Всередині шаблону можна керувати включенням його елементів у відображення за допомогою тегів  та.

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

Це може виявитися корисним для:
 * Категоризації шаблонів
 * Міжмовних посилань на версію цього шаблону іншою мовою
 * Пояснювального тексту щодо застосування шаблону

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

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

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

Знайти перелік шаблонів можна так:
 * 1) Натисни 
 * 2) Перейди там за посиланням . На цій сторінці:
 * 3) У переліку  обери     
 * 4) (Тестовий статус вікі) Якщо ти хочеш обмежитися тільки україномовними шаблонами, вкажи, що сторінка має починатися з "Ukr".
 * 5) Натисни кнопку .

Дописувач може також пошукати в Category:Templates, але там відображуються лише категоризовані шаблони. Перелік некатегоризованих шаблонів можна знайти на цій спеціальній сторінці.

Інформація про використання шаблонів зазвичай надається на сторінці шаблону:

Застосування
Подяка дописувачам:

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

Рекомендована форма шаблонів
Зазвичай використовують стиль, описаний тут. Подробиці на сторінці того шаблону.

Копіювання між різними вікі
Шаблони зазвичай спираються на певний CSS чи на інші шаблони, тому просте копіювання тексту шаблону між вікі створює проблеми. Описані нижче процедури мають працювати для більшості шаблонів. Нижче вікі, звідки копіюється шаблон, названа вихідною, а куди копіюється – кінцевою.

Якщо є права адміністратора

 * 1) Зайди на сторінку Special:Export вихідної вікі. Введи точну назву шаблону у велике поля для вводу, познач "Include templates" і натисни Export. Отримаєш результат у вигляді файлу .xml (його можна переглядати як звичайний текстовий файл).
 * 2) Зайди на сторінку Special:Import кінцевої вікі та завантаж отриманий файл .xml.
 * 3) В тексті шаблону пошукай посилання на класи CSS (на кшталт class="foobar"). Якщо таких класів немає у файлах "MediaWiki:Common.css" та "MediaWiki:Monobook.css" кінцевої вікі, скопіюй їх туди з відповідного файлу вихідної вікі.
 * 4) Якщо шаблон спирається на ParserFunctions, перевір, чи встановлене розширення ParserFunctions у кінцевій вікі, якщо ні – інсталюй його.

Якщо немає прав адміністратора

 * 1) Скопіюй текст шаблону до кінцевої вікі; залиш веб-посилання на нього у вихідній вікі в короткому описі редагування.
 * 2) Відкрий редагування шаблону в кінцевій вікі і подивись на перелік шаблонів унизу. Якщо там є якісь червоні посилання, ті шаблони слід також скопіювати з вихідної до кінцевої вікі. Цю процедуру, можливо, доведеться повторювати кілька (багато?) разів, доки жоден із нових шаблонів не міститиме червоних посилань.
 * 3) В тексті кожного зі скопійованих шаблонів пошукай посилання на класи CSS (на кшталт class="foobar"). Якщо таких класів немає у файлах "MediaWiki:Common.css" та "MediaWiki:Monobook.css" кінцевої вікі, скопіюй їх туди з відповідного файлу вихідної вікі.
 * 4) Якщо будь-який зі скопійованих шаблонів спирається на ParserFunctions, перевір, чи встановлене розширення ParserFunctions у кінцевій вікі, якщо ні – інсталюй його.

Дивись також

 * Довідка:Шаблони – довідка MediaWiki щодо шаблонів
 * Ukr:Довідка:Магічні слова – вбудовані параметри від рушія MediaWiki, які можуть використовуватися в шаблонах