Шаблон:Join

Материал из I2P-ilita вики
Перейти к навигацииПерейти к поиску

{{#invoke:Separated entries|main|separator=}}

<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: Шаблон:Join/doc

|

{{#invoke:Message box|ombox}}{{#ifeq:Join|doc||{{#if:||{{#if:Separated entries||}}}}}} {{safesubst:#invoke: Template call code | withParams | _tag = code }} объединяет несколько строк, вставляя между парами строку-разделитель. При этом, если хотя бы одна из строк пары пустая, то разделитель не используется (в этом и есть смысл шаблона).

Следует помнить, что, как и всегда, если в строках могут встречаться знаки равенства, следует напрямую указывать номера параметров:

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

Примеры использования[править]

Шаблон:Таблица примеров

Пример с переводом строки и знаком равенства в параметре: Шаблон:Таблица примеров

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

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

}}

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

| A test for all to see

|

}}