Модуль:Кароткая спасылка на скан
Дакументацыю да гэтага модуля можна стварыць у Модуль:Кароткая спасылка на скан/Дакументацыя
local p = {} --p азначае пакет
local getArgs = require('Модуль:Arguments').getArgs
-- простая функцыя, якая стварае спасылку на зададзеную старонку індэксу
local function index_link(index, display)
return "[[" .. "Індэкс:" .. index .. "|" .. display .. "]]"
end
-- бярэ n-ую спасылку ў аргумэнтах разам з назвай, калі ёсьць
local function get_link(args, n)
local display = n
local argname = 'name' .. n
if args[argname] ~= nil then
display = args[argname]
end
return index_link(args[n], display)
end
--[=[
Вяртае адфарматаваную кароткую спасылку на скан
Аргумэнты:
1,2,3.... : Старонкі індэксаў, на якія спаслацца
name1, name2, ...: Тэкст, які выведзецца для адпаведнай старонкі індэксу
]=]
function _small_scan_link(args)
local s = ''
if args[1] == nil then
error("Патрэбная прынамсі адна індэкс-старонка", 0)
end
if args[2] == nil then
-- адзіны аргумэнт
local target = args[1]
local link_text = ""
-- калі ёсьць назва, то ўзяць яе
if args['name1'] ~= nil then
link_text = args['name1']
else
-- назва ў залежнасьці ад існаваньня мэты
if mw.title.new("Індэкс:" .. target).exists then
link_text = "праект расшыфраваньня"
else
link_text = "пачаць расшыфраваньне"
end
end
s = index_link(target, link_text)
else
-- некалькі пазыцыйных аргумэнтаў
local i = 1
s = "тамы расшыфраваньня: "
-- перабраць пазыцыйныя парамэтры
while args[i] ~= nil do
s = s .. get_link(args, i)
i = i + 1
if args[i] ~= nil then
s = s .. ", "
end
end
end
return "<span class=\"scanlink\" style=\"font-size: 83%;\">(" .. s .. ")</span>"
end
function p.small_scan_link(frame)
local args = getArgs(frame)
return _small_scan_link(args)
end
return p