Moduł:Genlink
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Genlink/opis
local p = {}
local function mysplit (inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={}
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
table.insert(t, tonumber(str))
end
return t
end
local HighRomans = {
{ 1000, 'M' },
{ 900, 'CM' }, { 500, 'D' }, { 400, 'CD' }, { 100, 'C' },
{ 90, 'XC' }, { 50, 'L' }, { 40, 'XL' }, { 10, 'X' },
{ 9, 'IX' }, { 5, 'V' }, { 4, 'IV' }, { 1, 'I' }
}
function HighRoman(num)
local ret = {}
for _, v in ipairs(HighRomans) do
local val, letter = unpack(v)
while num >= val do
num = num - val
table.insert(ret, letter)
end
end
return table.concat(ret)
end
function p.main(frame)
return 'a[a[{{FULLPAGENAME}}/IxIa]a] • a[a[{{FULLPAGENAME}}/IIxIIa]a] • a[a[{{FULLPAGENAME}}/IIIxIIIa]a] • a[a[{{FULLPAGENAME}}/IVxIVa]a]'
end
function p.rplmult(frame)
local poslist = mysplit (frame.args[2], ',')
local a = frame.args[1]
for _, i in ipairs(poslist) do
a = string.gsub(a, string.format("%03d", tonumber(i)),'<br>')
end
a = string.gsub(a, 'Ѱ%]Ѱ%]%d+Ѱ%[Ѱ%[', 'Ѱ%]Ѱ%] • Ѱ%[Ѱ%[')
return a
end
function p.rplmult1(frame)
wyn = {}
local maxp = tonumber(frame.args[1])
local prefix = frame.args[3] .. '/'
local poslist = mysplit (frame.args[2], ',')
poslist[#poslist + 1] = maxp
local k = tonumber(frame.args[4])
-- local a = frame.args[1]
for j = 1, k do
wyn[j] = ''
end
for _, i in ipairs(poslist) do
for j = k, (i - 1) do
--wyn[k] = '[[' .. frame.args[3] .. HighRoman(j) .. ']] • '
wyn[j] = '[[' .. prefix .. HighRoman(j) .. '|' .. HighRoman(j) .. ']] • '
--wyn1 = wyn1 .. '[[' .. frame.args[3] .. j .. ']] • '
end
k = i + 1
-- wyn[i] = '[[' .. frame.args[3] .. HighRoman(j) .. ']]<br>'
wyn[i] = '[[' .. prefix .. HighRoman(i) .. '|' .. HighRoman(i) .. ']]<br>'
--wyn1 = wyn1 .. '[[' .. frame.args[3] .. i .. ']]<br>'
end
wyn[maxp] = '[[' .. prefix .. HighRoman(maxp) .. '|' .. HighRoman(maxp) .. ']]'
a = table.concat(wyn,'')
return a
end
return p