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

З пляцоўкі Вікіпедыя
Перайсці да: рух, знайсці
Кароткая спасылка-перанакіраванне ВП:МШ

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

Агульная праца[правіць зыходнік]

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

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

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

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

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

Параметры[правіць зыходнік]

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

  • {{назва шаблону|назва парамэтру 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), запісаўшы =, ці ж выкарыстоўваць спецыяльны шаблон {{[[Шаблон:{{{1}}}|{{{1}}}]]}}, які ўстаўляе сімвал «=».

Умоўнае значэнне параметра[правіць зыходнік]

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

У залежнасці ад значэння параметру шаблону ў тэкст артыкула можна ўстаўляць фрагменты. Для гэтай мэты ў тэксце шаблону выкарыстоўваюцца функцыі парсера, многія з якіх з'яўляюцца прыватнымі выпадкамі ўмоўнага аператара: {{#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)

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

18 студзеня 2018, 16:25 (UTC)

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

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