Шаблон:Tpre

Материал из I2P-ilita вики
Версия от 13:40, 25 июня 2023; 127.108.185.116 (обсуждение) (скопировать статью из википедии)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигацииПерейти к поиску

{{safesubst:#invoke: Template call code | withParams | _tag = pre }}<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: Шаблон:Tpre/doc

|

{{#invoke:Message box|ombox}}{{#ifeq:Tpre|doc||{{#if:||{{#if:Template call code||}}}}}} {{Tpre}} совмещает в себе функцию {{tc}} и {{pre}}. С его помощью удобно создавать примеры использования шаблонов в их документациях.

Например, чтобы показать синтаксис шаблона {{перенесено с}}, мы можем в его документации написать так:

{{tpre||''Вики-страница''{{optp|''подпись и/или текст в конце''|текст{{=}}''Текст вместо «Перенесено со страницы»''}}}}
{{optp/comment}}

и получим:

{{safesubst:#invoke: Template call code | withParams | _tag = pre }}
Шаблон:Optp/comment

A test for all to see Про такой стиль оформления синтаксисов шаблонов в документациях см. Шаблон:Ссылка на раздел.

Между тем в многострочных примерах этот шаблон лучше не использовать по причине съедания пробелов до вертикальных черт, прибегая вместо него к оформлению при помощи пробела в начале строк. Это тоже позволяет включать разметку в код. Например (в начале каждой строки — пробел):

 {{((}}main
  |''Статья 1''
  |''Статья 2''
  |l1=''Отображаемый текст ссылки 1''
  |l2=''Отображаемый текст ссылки 2''
 }}

который даст:

{{main
 |Статья 1
 |Статья 2
 |l1=Отображаемый текст ссылки 1
 |l2=Отображаемый текст ссылки 2
}}

Настройки[править]

Если задать Шаблон:Para, параметры шаблона будут отбиты пробелами:

Шаблон:Пример

См. также[править]

  • {{*tpre}} — то же самое с маркером списка (иначе его нельзя использовать напрямую)
  • {{sp↓}} — отбитая от левого края стрелка вниз, чтобы оформить ею результат обработки того, что показано в шаблоне {{tpre}}
  • {{пример}} — код вызова шаблона → результат; см. там стиль pre
  • {{pre}}
  • {{между pre}}

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

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

}}

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

| A test for all to see

|

}}