Модуль:Ссылка на шаблон: различия между версиями

мНет описания правки
мНет описания правки
Строка 2: Строка 2:


function p.link(frame)
function p.link(frame)
local text = frame.args[1] or ""
  local text = frame.args[1] or ""
if text == "" then
  if text == "" then
return ""
    return ""
end
  end


local target, display
  local target, display


-- Если первая буква равна ":"
local ustring = mw.ustring
if text:sub(1,1) == ":" then
target = text:sub(2)
if ustring.sub(text, 1, 1) == ":" then
display = text
  target = ustring.sub(text, 2)
  display = text
elseif ustring.sub(text, 1, 7) == "Модуль:" then
  target = "#invoke:" .. ustring.sub(text, 8)
  display = text


-- Если строка начинается с "Модуль:"
  -- Если строка начинается с "Шаблон:"
elseif mw.ustring.sub(text, 1, 7) == "Модуль:" then
  elseif text:sub(1,7) == "Шаблон:" then
target = "#invoke:" .. mw.ustring.sub(text, 8)
    target = text
display = text
    -- Для отображения убираем префикс "Шаблон:"
    display = text:sub(8)


-- Если строка начинается с "Шаблон:"
  -- Если строка начинается с "Файл:"
elseif text:sub(1,7) == "Шаблон:" then
  elseif text:sub(1,6) == "Файл:" then
target = text
    target = text
display = text:sub(8)
    display = text:sub(7)


-- Если строка начинается с "Файл:"
  -- Если строка начинается с "Категория:"
elseif text:sub(1,6) == "Файл:" then
  elseif text:sub(1,10) == "Категория:" then
target = text
    target = text
display = text:sub(7)
    display = text:sub(11)


-- Если строка начинается с "Категория:"
  -- Если обычная строка – добавляем в начало префикс "Шаблон:"
elseif text:sub(1,10) == "Категория:" then
  else
target = text
    target = "Шаблон:" .. text
display = text:sub(11)
    display = text
  end


-- Если обычная строка – добавляем в начало префикс "Шаблон:"
  return string.format("[[%s|%s]]", target, display)
else
target = "Шаблон:" .. text
display = text
end
 
return string.format("[[%s|%s]]", target, display)
end
end


return p
return p