Модуль:Ссылка на шаблон: различия между версиями
Pok (обсуждение | вклад) Новая страница: «local p = {} function p.link(frame) local text = frame.args[1] or "" if text == "" then return "" end local target, display -- Если первая буква равна ":" if text:sub(1,1) == ":" then -- Убираем начальный двоеточие local noColon = text:sub(2) -- Если после ":" идёт "Шаблон:" – удаляем и его для отображения if noColon:sub(1,7) == "Ша...» |
Pok (обсуждение | вклад) мНет описания правки |
||
| (не показано 8 промежуточных версий этого же участника) | |||
| Строка 2: | Строка 2: | ||
function p.link(frame) | function p.link(frame) | ||
local text = frame.args[1] or "" | |||
if text == "" then | |||
return "" | |||
end | |||
local target, display, prefix | |||
local ustring = mw.ustring | |||
-- Если строка начинается с "":"" | |||
if ustring.sub(text, 1, 1) == ":" then | |||
target = ustring.sub(text, 2) | |||
display = text | |||
-- Если строка начинается с "Модуль:" | |||
elseif ustring.sub(text, 1, 7) == "Модуль:" then | |||
target = text | |||
display = ustring.sub(text, 8) | |||
prefix = "#invoke:" | |||
-- Если строка начинается с "Шаблон:" | |||
elseif text:sub(1,7) == "Шаблон:" then | |||
target = text | |||
display = text:sub(8) | |||
-- Если строка начинается с "Файл:" | |||
elseif text:sub(1,6) == "Файл:" then | |||
target = text | |||
display = text:sub(7) | |||
-- Если строка начинается с "Категория:" | |||
elseif text:sub(1,10) == "Категория:" then | |||
target = text | |||
display = text:sub(11) | |||
-- Если обычная строка – добавляем в начало префикс "Шаблон:" | |||
else | |||
target = "Шаблон:" .. text | |||
display = text | |||
end | |||
return frame:preprocess(string.format("<nowiki>%s</nowiki>[[%s|%s]]", prefix or "", target, display)) | |||
end | end | ||
return p | return p | ||