Шаблон:Tl

Материал из I2P-ilita вики
Версия от 11:08, 22 ноября 2020; Terra incognita (обсуждение | вклад) (шаблон создан)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигацииПерейти к поиску

<templatestyles src="Шаблон:Doc/styles.css" />

local getArgs = require('Module:Arguments').getArgs

local yesno = require('Module:Yesno') local compressSparseArray = require('Module:TableTools').compressSparseArray local p = {}

local function unpack(...) local frame = ... local args if type(frame.args) == 'table' then args = getArgs(frame) elseif type(frame) == 'table' then args = frame else args = {...} end return args end

function p._main(anchor, text, visible) local result = mw.html.create('span') :attr('id', anchor) :wikitext(text) if visible then result:addClass('highlight-target') end return tostring(result) end

function p.main(...) local args = unpack(...) local anchors = compressSparseArray(args) local text local visible = yesno(args.visible or args.v) if visible then text = args.text or args['текст'] or args[1] end

local result = text for i, v in ipairs(anchors) do result = p._main(anchors[i], result, visible) --[[ создание старого вида якорей для совместимости, см. Обсуждение шаблона:Якорь#Новые html5 ссылки и старые ]] local encoded_anchor = mw.uri.encode(anchors[i], 'WIKI'):gsub('%%', '.') if anchors[i] ~= encoded_anchor then result = p._main(encoded_anchor, result, visible) end end

return result end

return p
Документация
{{#if: || <templatestyles src="Шаблон:Действия для страницы/styles.css" /> }}

{{#if: | {{#ifexist: {{{1}}}

 | {{{{{1}}}||||}}
 | {{#ifexist: Шаблон:{{{1}}}
   | {{{{{1}}}||||}}
   | Шаблон:Документировать
   }}
 }}

| {{#ifexist: Шаблон:Tl/doc

|

{{#invoke:Message box|ombox}} {{#invoke:Message box|ombox}}{{#ifeq:Tl|doc||{{#if:||{{#if:Template call code||}}}}}} {{Tl}} — шаблон-комбайн для создания символической записи имён шаблонов или ссылок на них. С его помощью можно сослаться на шаблон (и не только) где угодно, с любым текстом ссылки или без неё.

Шаблон:Днш

Шаблон:TOC right

Использование

{{safesubst:#invoke: Template call code | withParams | _tag = code }}

Все параметры являются необязательными.

Если использовать шаблон без параметров (или без первого параметра), то в фигурных скобках он выведет название текущей страницы (после двоеточия) со строчной первой буквы (это бывает полезно при упоминании шаблона в его собственной документации, особенно когда используется одна документация на несколько шаблонов).

Если использовать его с первым параметром, то он создаст ссылку на страницу, заданную в нём, за исключением случая, когда он уже находится на ней.

Флаги записываются через вертикальную черту, например nl|s|u, их может быть не больше четырёх. Список флагов:

  • nl (nolink): подавить ссылку.
  • s и п: вывести ключевое слово «subst:» и «подст:» соответственно перед именем шаблона.
  • g (от англ. global): ссылаться по умолчанию на основное пространство имён вместо пространства шаблонов. Этот флаг включается автоматически, если первым символом в названии шаблона или страницы является двоеточие, например :Страница или :Участник:Некий участник/подстраница (вики-движок интерпретирует начальное двоеточие в названии страницы в фигурных скобках как ссылку на корневое пространство; так, {{safesubst:#invoke: Template call code | withParams | _tag = code }} включит содержимое соответствующей страницы Википедии в текущую страницу).
  • nav: при использовании шаблона в блоках навигации. Благодаря этому флагу, когда вы находитесь на той странице, на которую должна вести ссылка, название шаблона выделяется жирным. Например, так сделано в навигационном шаблоне {{Языковые шаблоны}}. Работает только при указанном первом параметре. Доступен шаблон-обёртка {{tnav}}.
  • noredir: если ссылка ведёт на перенаправление, не перенаправлять (параметр URL ?redirect=no; используется, например, в {{днш}}).
  • u: вывести имя шаблона с заглавной буквы. Работает только при опущенном первом параметре.
  • b (от black): не использовать серый цвет текста для фигурных скобок (чтобы названия шаблонов смотрелись опрятно в коде).

Список кодов родственных проектов, записываемых в параметре Шаблон:Para, см. на странице Википедия:Интервики.

Для ссылок на шаблоны в английском разделе доступен шаблон-обёртка {{ent}}.

Примеры

Базовые

  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{Tl}}  (выводит название той страницы, на которой вы находитесь)
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{t}}
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{шаблон}}
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{[[Шаблон::Страница|:Страница]]}}

Внешний вид этих примеров [наличие ссылки] будет отличаться на основной странице шаблона и на странице документации, Шаблон:T/doc.

Флаги

  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{шаблон}}
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{шаблон}}
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{Участник:Jack who built the house/t}}
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{шаблон}}
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{[[Шаблон:|]]}}
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{шаблон}}

A test for all to see Флаг nav / шаблон {{tnav}}:

{{tnav|t}}{{*}}{{tnav|tp}}{{*}}{{tnav|tc}}{{*}}{{tnav|tlc}}

Шаблон:Sp↓ Шаблон:TnavШаблон:*Шаблон:TnavШаблон:*Шаблон:TnavШаблон:*Шаблон:Tnav

A test for all to see Сразу несколько:

  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{[[Шаблон:|]]}}
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{Участник:Jack who built the house/t}}

Остальные параметры

  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{lang}}
  • Шаблон:Пример
  • {{safesubst:#invoke: Template call code | withParams | _tag = code }} → {{template}}

Суперкомбо

Представим, что нам понадобилось сослаться на шаблон в китайском викисловаре, используемый с подстановкой, который некий участник хранит в своём личном пространстве, а текст ссылки заменить на свой:

Детали

  • Если шаблон используется без первого параметра, а в названии страницы есть слэш, то, что идёт после него, опускается.
  • Шаблон понимает идентичность адресов Участник:Некий участник и Участник:Некий_участник и использует особые приёмы, чтобы обходить баги/особенности вики-движка, связанные с использованием символов «*», «:», «;» и т. п. на первом месте в названиях шаблонов или тексте ссылок. Не смутит его и замена символов их HTML-кодами, типа &#47; для «/».
  • Если вы хотите поменять что-то в этом шаблоне, воспользуйтесь тестами на странице Шаблон:T/тесты для проверки его работоспособности после внесения изменений.

Можно сделать

  • При ссылках на страницы в пространстве «Участник» и других (см. маску Шаблон\:(Media|Служебная|Special|… на MediaWiki:Titleblacklist) также можно автоматически включать флаг g, после чего нужда в ручном его указании останется только для других разделов.
  • Шаблон сейчас не работает с опущенным первым параметром вне пространства «Шаблон» (но не факт, что за его пределами нужны документации).

См. также

Шаблон:Шаблоны для документирования

 | Шаблон:Документировать
 }}

}}

<templatestyles src="Шаблон:Doc/styles.css" />{{#ifexpr: 10 mod 2 = 1

| A test for all to see

|

}}