Модуль:Ссылка на шаблон: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| (не показано 6 промежуточных версий этого же участника) | |||
| Строка 7: | Строка 7: | ||
end | end | ||
local target, display | local target, display, prefix | ||
local ustring = mw.ustring | |||
-- Если строка начинается с "":"" | |||
if ustring.sub(text, 1, 1) == ":" then | |||
target = ustring.sub(text, 2) | |||
target = | |||
display = text | display = text | ||
-- Если строка начинается с "Модуль:" | |||
elseif ustring.sub(text, 1, 7) == "Модуль:" then | |||
target = text | |||
display = ustring.sub(text, 8) | |||
prefix = "#invoke:" | |||
-- Если строка начинается с "Шаблон:" | -- Если строка начинается с "Шаблон:" | ||
elseif text:sub(1,7) == "Шаблон:" then | elseif text:sub(1,7) == "Шаблон:" then | ||
target = text | target = text | ||
display = text:sub(8) | display = text:sub(8) | ||
| Строка 38: | Строка 42: | ||
end | end | ||
return string.format("[[%s|%s]]", target, display) | return frame:preprocess(string.format("<nowiki>%s</nowiki>[[%s|%s]]", prefix or "", target, display)) | ||
end | end | ||
return p | return p | ||
Текущая версия от 21:47, 23 февраля 2025
Для документации этого модуля может быть создана страница Модуль:Ссылка на шаблон/doc
local p = {}
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
return p