Вікіпедыя:Механізм шаблонаў

Шаблоны — клас асаблівых старонак у MediaWiki (праграмным забеспячэнні Вікіпедыі), змесціва якіх можна ўставіць у іншыя старонкі. Прычым гэта змесціва счытваецца пры кожнай загрузцы старонкі: змены ў шаблоне выявяцца на старонках, іх прымяняюць (за выключэннем выпадку, калі шаблон выкарыстоўваецца з падстаноўкай, — гл. ніжэй). Ніжэй апісваецца, як яны працуюць.

Агульныя звесткі

Старонкі шаблонаў — паўнацэнныя вікі-дакументы, для якіх адведзена свая прастора назваў «Шаблон». У Вікіпедыі іх дазволена правіць любому ўдзельніку.

Выклікаецца шаблон устаўкай у рэдагуемы тэкст старонкі запісу {імя шаблона} і, калі трэба, пасля імені шаблона запісваюцца значэнні параметраў. Першая літара імені можа быць малой ці вялікай — без розніцы. Пры адлюстраванні старонкі на месцы выкліку будзе разгорнута змесціва старонкі Шаблон:Імя шаблона. Калі старонка не існуе, то выклік будзе адлюстраваны як спасылка на неіснуючы артыкул шаблона. Таму, каб не з’яўлялася чырвоная спасылка «Шаблон:Неіснуючы шаблон», пераканайцеся ў існаванні выкліканых шаблонаў праз папярэдні прагляд старонкі да захавання праўкі.

Калі ўявіць, што ў асноўнай прасторы назваў існуе артыкул Імя шаблона, то можна выклікаць яго, паставіўшы перад імем шаблона двукроп’е: {:Імя шаблона}. Такім чынам, любую старонку можна выкарыстоўваць як шаблон. Калі выклікаць малюнак, загружаны ў Вікіпедыю, а не на Вікісховішча ({Файл:Імя шаблона}) ці катэгорыю ({Катэгорыя:Імя шаблона}), то будзе падстаўлена апісальная частка карцінкі або катэгорыі адпаведна. Такім спосабам зручна:

  • эксперыментаваць з шаблонамі (не залазячы ў прастору шаблонаў),
  • «выцягваць» подпісы і апісанні малюнкаў,
  • вырабляць адмысловыя састаўныя артыкулы (напрыклад, для друку).

Калі ў редагуемую старонку ўставіць выклік шаблона {/Імя падстаронкі}, то ў гэтым месцы ў працэсе перадпрагляду адлюструецца змесціва яе падстаронкі. У прасторы імён «Вікіпедыя» часта выкарыстоўваецца шаблон {/Шапка}. Калі перайсці ў рэжым рэдагавання старонкі Вікіпедыя:Запыты на статус даглядчыка, то ў яе пачатку можна ўбачыць выклік шаблона {/Шапка}. У рэжыме перадпрагляду адлюстроўваецца тэкст падстаронкі Вікіпедыя:Запыты на статус даглядчыка/Шапка.

Выкарыстанне шаблонаў

Каб выкарыстаць шаблон, неабходна ўставіць тэкст выкліку шаблона, у выніку чаго ў месцы выкліку ў рэдагуемым тэксце з’яўлецца змест іншай старонкі.

Напрыклад, калі вы ўвядзеце ў рэдактар наступны код выкліку шаблона {*}, чытач убачыць  · . У дадзеным прыкладзе выкарыстоўваўся Шаблон:*.

Знайсці неабходны шаблон можна ў спецыяльнай службовай катэгорыі.

На старонцы шаблона звычайна ёсць загатоўка для яго выкліку, напрыклад:

{Штучны спадарожнік
| назва                 = 
| арыгінальная назва    = 
| выява                 = 
| памер                 = 
| подпіс                = 
| арганізацыя           = 
| краіна                = 
| распрацоўшчык         = 
| мэта                  = 
| спадарожнік           = 
| касмічная праграма    = 
| папярэдні             = 
| наступны              = 
| абарачэнняў           = 
| час запуску           = 
| касмадром             = 
| ракета-носьбіт        = 
| тэрмін працы          = 
| канец працы           = 
| NSSDC_ID              = 
| сайт                  = 
| маса                  = 
| арбіта                = 
| вялікая паўвось       = 
| эксцэнтрысітэт        = 
| нахіленне             = 
| перыяд абарачэння     = 
| апагей                = 
| перыгей               = 
}

Гэтую загатоўку можна скапіраваць і ўставіць у патрэбны артыкул. Як можна ўбачыць у прыкладзе ніжэй, у шаблоне ёсць шмат параметраў, аднак не абавязкова капіраваць ці запаўняць кожную графу:

{Штучны спадарожнік
| назва                 = БелКА
| арганізацыя           = 
| краіна                = {Сцяг Беларусі} [[Беларусь]]
| распрацоўшчык = 
| мэта =
| спадарожнік = [[Планета Зямля|Зямлі]]
| час запуску = 20:43 [[26 ліпеня]] [[2006]]
| касмадром = {Сцяг Расіі} [[Касмадром Байканур|Байканур]]
| ракета-носьбіт = {Сцяг Расіі} {Сцяг Украіны} [[Днепр-1]]
}
БелКА
Краіна Сцяг Беларусі Беларусь
Спадарожнік Зямлі
Час запуску 20:43 26 ліпеня 2006
Касмадром Сцяг Расіі Байканур
Ракета-носьбіт Сцяг Расіі Сцяг Украіны Днепр-1

Параметры

Параметры шаблона могуць быць найменнымі або нумараванымі. Сінтаксіс выкліку шаблона і спосаб выкарыстання параметраў у целе шаблона ў гэтых двух выпадках будуць адрознівацца:

  • {назва шаблона|назва параметра 1=значэнне параметра 1|назва параметра 2=значэнне параметра 2} — выкарыстоўваюцца найменныя параметры. Тады ў целе шаблона трэба спасылацца на імя параметра: {імя параметра 1}, {імя параметра 2}.
  • {імя шаблона|значэнне параметра 1|значэнне параметра 2} або {імя шаблона|1=значэнне параметра 1/2=значэнне параметра 2} — выкарыстоўваюцца нумараваныя параметры. Тады ў целе шаблона трэба выкарыстоўваць парадкавы нумар параметра {1}, {2}.

Звярніце ўвагу, што фігурныя дужкі вакол імён параметраў патройныя, а не падвойныя.

Параметры, прысутныя ў выкліку шаблона, але адсутныя ў целе шаблона, ігнаруюцца. Найменныя параметры адчувальныя да рэгістра сімвалаў.

Пры выкліку шаблона выконваюцца два тыпы падстановак:

  • імя шаблона ў двайных фігурных дужках замяняецца змесцівам шаблона;
  • імя або нумар параметра шаблона ў патройных фігурных дужках замяняецца значэннем параметра.

Параметрам шаблона можа быць спасылка на іншы артыкул. Хай, напрыклад, у нас ёсць такі шаблон:

Пачатак {1} канец.

і ён завецца «Шаблон». Тады пры выкліку шаблона ў тэксце старонкі запісам

{Шаблон|[[Галоўная старонка]]}

шаблон будзе разгорнуты ў

Пачатак [[Галоўная старонка]] канец.

Нявызначаныя і пустыя значэнні параметраў

Калі ў радку выкліку шаблона з найменнымі ці нумараванымі параметрамі параметр не атрымаў значэнне, то ён застаецца нераскрытым тэкстам: з найменнымі параметрамі {параметр 1}, з нумараванымі параметрамі {1}. Параметр будзе раскрыты ў далейшым, калі артыкул, які выклікаў шаблон, уключаецца ў іншы артыкул, дзе гэты параметр зададзены.

Заўважым, што выклік шаблона з найменнымі параметрамі {шаблон 1|параметр 1=|параметр 2=а} робіць параметр «параметр 1» вызначаным, роўным пустому радку. Выклік {шаблон 1|параметр 2=а} задае параметр «параметр 2», «параметр 1» не вызначаны.

Аналагічна для шаблона з нумараванымі параметрамі: выклік {шаблон 2||а} робіць першы параметр вызначаным, роўным пустому радку, выклік {шаблон 2|2=а}) задае другі параметр, першы параметр не вызначаны.

Калі код паміж вертыкальнымі рысамі змяшчае знак роўнасці (напрыклад, а=б), выклік шаблона {шаблон|а=б|в} не прысвоіць значэнне «а=б» нумараванаму параметру «1», а створыць параметр «а» са значэннем «б»; а вось {шаблон|1=а=б|2=в} усё зробіць правільна. Адзіны мінус у тым, што пры выкліку шаблона даводзіцца нумараваць усе параметры шаблона, калі нумаруецца хоць адзін. Для ўстаўкі сімвала роўнасці ў значэнне параметра можна выкарыстоўваць лічбавую спасылку на гэты сімвал (англ.: numeric character reference), запісаўшы =, ці выкарыстоўваць спецыяльны шаблон {=}, які ўстаўляе сімвал «=».

Умоўнае значэнне параметра

Каб не з’яўляўся нераскрыты тэкст параметра з незададзеным значэннем, выкарыстоўваюць умоўнае значэнне параметра ў тэксце шаблона. Найменны або нумараваны параметр параметр унутры шаблона запісваецца ў форме {параметр|альтэрнатыўны тэкст}. Калі значэнне параметра не зададзена ў выкліку шаблона, то будзе выкарыстаны альтэрнатыўны тэкст; калі зададзена значэнне параметра (у тым ліку пустое), то выкарыстоўваецца зададзенае значэнне. Напрыклад, альтэрнатыўны тэкст пусты: {параметр|}. Тады калі значэнне параметра зададзена пры выкліку шаблона — выкарыстоўваецца зададзенае значэнне; калі значэнне параметра не зададзена — выкарыстоўваецца пустое значэнне, гэта значыць у месцы параметра ніякі тэкст выводзіцца не будзе.

У залежнасці ад значэння параметра шаблона ў тэкст артыкула можна ўстаўляць фрагменты. Для гэтай мэты ў тэксце шаблона выкарыстоўваюцца функцыі парсера, многія з якіх з’яўляюцца асобнымі выпадкамі ўмоўнага аператара: {#if} і іншыя. Сінтаксіс функцыі {#if} выглядае так:

{#if: правяраемы параметр
| тэкст, калі значэнне параметра запоўнена
| тэкст, калі значэнне параметра пустое
}

Тэкст, калі значэнне параметра пустое, не з’яўляецца абавязковым, таму можна выкарыстоўваць скарочаную форму:

{#if: правяраемы параметр
| тэкст, калі значэнне параметра запоўнена
}

Калі правяраемы параметр шаблона запісаны ў форме {параметр}, то непустое значэнне параметра азначае: альбо яго значэнне зададзена непустым пры выкліку шаблона, альбо яно не зададзена і застаецца нявызначаным (і калі вывесці яго на старонку, то мы так і атрымаем: {параметр}). Гэта значыць, мы не можам зразумець, зададзена значэнне параметра ці не. Каб мець магчымасць выклікаць шаблон з меншай колькасцю параметраў, чым у тэксце шаблона, і каб незададзеныя параметры ігнараваліся, параметры ў целе шаблона запісваюцца ў форме {параметр|}. Калі пры выкліку шаблона зададзена непустое значэнне параметра, то яно будзе выкарыстоўвацца. У адваротным выпадку выкарыстоўваецца ўмоўнае значэнне параметра пуста.

Тэгі noinclude, includeonly, onlyinclude

Усё, што знаходзіцца паміж тэгамі <noinclude> і </noinclude>, будзе апрацоўвацца і паказвацца толькі ў выпадку, калі шаблон паказваецца непасрэдна, не ўключаным у іншую старонку. Магчымыя ўжыванні:

  • Катэгарызацыя шаблонаў саміх па сабе, а не тых старонак, у якія шаблон уключаны. Для шаблонаў, якія маюць старонкі дакументацыі, рэкамендуецца прастаўляць катэгорыі ў іх, пры гэтым там, наадварот, выкарыстоўваецца <includeonly>.
  • Старонкі ў прасторы назваў MediaWiki.
  • Тэкст з тлумачэннем таго, як выкарыстоўваць шаблон. Як правіла, для гэтага ствараецца дакументацыя шаблона.

Тэг <includeonly> мае процілеглае дзеянне. Тэкст паміж <includeonly> і </includeonly> будзе апрацоўвацца і паказвацца толькі тады, калі шаблон уключаны ў артыкул. Відавочнае ўжыванне:

  • уключэнне ўсіх артыкулаў, якія змяшчаюць шаблон, у катэгорыю (пры гэтым сам шаблон у катэгорыю не патрапіць).

Калі тэкст абгорнуты ў тэгі <onlyinclude></onlyinclude>, пры ўключэнні гэтай старонкі на іншую будзе выводзіцца толькі фрагмент унутры гэтых тэгаў (фрагменты, калі некалькі тэгаў). Абгортванне ў гэты тэг пэўнага фрагмента тэксту аналагічна абгортванню ўсяго астатняга тэксту старонкі, акрамя абгорнутай у <code><nowiki>onlyinclude, у тэг noinclude. Не дапускайце пустых радкоў вакол канструкцый <noinclude> і <includeonly>, бо пусты радок будзе інтэрпрэтавацца як перанос радка, які будзе ўнесены шаблонам у артыкул.

Падстаноўка

Канструкцыя (subst:) пасля падвойных фігурных дужак прымушае выконваць падстаноўку тэксту шаблона або нават зменнай у момант захавання старонкі, якая спасылаецца на шаблон.

Напрыклад, калі мы напішам

{subst:CURRENTDAY} {subst:CURRENTMONTHNAMEGEN} {subst:CURRENTYEAR}, {subst:CURRENTTIME} (UTC)

або ~~~~~

пры захаванні старонкі падставяцца бягучыя дата і час:

18 кастрычніка 2017, 08:57 (UTC)

у той час як

{CURRENTDAY} {CURRENTMONTHNAMEGEN} {CURRENTYEAR}, {CURRENTTIME} (UTC)

кожны раз будзе паказваць бягучы час:

3 студзеня 2025, 05:48 (UTC)

А наступны код выкарыстоўваецца для прывітання новых удзельнікаў:

{subst:вітаем} ~~~~