Шаблон:Tpre
{{safesubst:#invoke: Template call code | withParams | _tag = pre }}<templatestyles src="Шаблон:Doc/styles.css" />
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: | {{#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
|
}}