Шаблон:Str len

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

{{safesubst:#invoke:String|len|s=}}

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

|

{{#invoke:Message box|ombox}}Шаблон:No-doc {{#invoke:Message box|ombox}}{{#ifeq:Str len|doc||{{#if:||{{#if:String||}}}}}}

Примеры[править]

Пустой или неопределённый параметр:

{{str len}} возвращает {{safesubst:#invoke:String|len|s=}}
{{str len|}} возвращает {{safesubst:#invoke:String|len|s=}}
{{str len| }} возвращает {{safesubst:#invoke:String|len|s= }}

Обычные строки (в том числе со специальными символами):

{{str len|ab cde}} возвращает {{safesubst:#invoke:String|len|s=ab cde}}
{{str len| 1234567 }} возвращает {{safesubst:#invoke:String|len|s= 1234567 }}
{{str len| привет }} возвращает {{safesubst:#invoke:String|len|s= привет }}
{{str len| §101. Ĉź }} возвращает {{safesubst:#invoke:String|len|s= §101. Ĉź }}

Некоторые особые случаи (см. Википедия:Механизм шаблонов):

{{str len| ♀ + ♂ = ♥ }} возвращает {{safesubst:#invoke:String|len|s=}}   (♀ + ♂ воспринимается как имя параметра),  но зато
{{str len| 1= ♀ + ♂ = ♥ }} возвращает {{safesubst:#invoke:String|len|s=♀ + ♂ = ♥}}   (1 — имя параметра)
{{str len| {{tl|123}} }} возвращает {{safesubst:#invoke:String|len|s= {{123}} }}   (шаблон подставляется)
{{str len| &#126; }} возвращает {{safesubst:#invoke:String|len|s= ~ }}   (HTML-мнемоники не подставляются)

Шаблон верно работает как минимум для строк до 90 000 символов длиной:

{{str len| <499 символов> }} возвращает {{safesubst:#invoke:String|len|s= abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi }}
{{str len| <1000 символов> }} возвращает {{safesubst:#invoke:String|len|s= abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghij }}

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

Данный шаблон является значительно более ресурсоёмким для серверов Википедии, чем следующие шаблоны, поэтому по возможности старайтесь использовать эти оптимизированные варианты:

  • {{str ≠ len}} — проверка длины строки на равенство или неравенство заданному числу символов;
  • {{str ≥ len}} — проверка, является ли длина строки больше либо равной или меньше заданного числа символов.

<templatedata> { "description": "Шаблон выдаёт длину строки, которая стоит в его первом параметре. Начальные и конечные (но не промежуточные) пробелы отбрасываются.", "params": { "1": { "label": "Строка", "type": "string", "required": true } } } </templatedata>

Шаблон:Шаблоны обработки строк

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

}}

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

| A test for all to see

|

}}