Moduł:Genlink

Z Wikiźródeł, wolnej biblioteki

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+Ѱ%[Ѱ%[', 'Ѱ%]Ѱ%]&nbsp;&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp; Ѱ%[Ѱ%[')
	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) .. ']]&nbsp;&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp; '
			wyn[j] = '[[' .. prefix .. HighRoman(j) .. '|' .. HighRoman(j) .. ']]&nbsp;&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp; '
			--wyn1 = wyn1 .. '[[' .. frame.args[3] .. j .. ']]&nbsp;&nbsp;&nbsp;&nbsp;•&nbsp;&nbsp;&nbsp; '
		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