模組:CDD

出自維基百科,自由嘅百科全書
模組解[]
-- module to turn a parameter list into a list of [[Coxeter–Dynkin diagram]] images.
-- See the template documentation or any example for how it is used and works.
local p = {}
local origArgs

function p.CDD(frame)
	-- For calling from #invoke.
    if frame == mw.getCurrentFrame() then
        origArgs = frame:getParent().args
    else
        origArgs = frame
    end
	local pframe = frame:getParent()
	local args = pframe.args
	if (origArgs['FileType'] and origArgs['FileType']  ~= '') then
		filet=origArgs['FileType']
	else
		filet="png"
	end
	if (origArgs['CDDtype'] and origArgs['CDDtype'] ~= '') then
		cddt=origArgs['CDDtype']
	else
		cddt="CDel"
	end
	return p._CDD_(args,filet,cddt)
end
	
function p._CDD(args,ft,ct)
	return p._CDD_(args,"png","CDel")
end

function p._CDD_(args,ft,ct)
	-- For calling from other Lua modules.
	local body ='<span style="display:inline-block;">'         -- create and start the output string
	local filetype = ft
	local CDDtype = ct
	for v, x in ipairs(args) do                                -- process params, ignoring any names
		pgname="." .. filetype
		cpgname=CDDtype .. "_"

		if (x ~= '') then					-- check for null/empty names
            d = tonumber(x)
            if (d ~= nil) then
                if (d > 20) then
                    for i = 1,string.len(x) do
                        tmpstr = string.sub(x,i,i)
                        if (tonumber(tmpstr) > 3) then
                            body = body .. "[[File:".. cpgname .. string.sub(x,i,i) .. pgname .. "|link=]]"
                        else
                            body = body .. "[[File:".. cpgname .. string.sub(x,i,i) .. "x" .. pgname .. "|link=]]"
                     	end
                 	end
             	else
                 	body = body .. "[[File:".. cpgname .. x  .. pgname .. "|link=]]"
                end
            else
             	body = body .. "[[File:".. cpgname .. x  .. pgname .. "|link=]]"
         	end
		end
	end
	body = body .. "</span>"                                   -- finish output string
	return body                                                -- return result
end

return p