Documentation for this module may be created at Module:Coxeter–Dynkin diagram/sandbox/doc
-- 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 = {}
-- list of file names (minus 'CDel ' and extension) which are available as an
-- SVG version which must be perfectly compatible in appearance and public domain.
-- Uses spaces not underscores.
local has_svg = {'nodes', 'node h', '2', '3', '4', '5', '6', '7', '8', '9',
'10', '11',
'label2'}
function show_image(x, double)
local suffix = "|link=]]"
if double then
suffix = "|x46px|link=]]"
end
for i, svgfile in ipairs(has_svg) do
if svgfile == string.gsub(x, '_', ' ') then
return "[[File:CDel_" .. x .. ".svg" .. suffix
end
end
return "[[File:CDel_" .. x .. ".png" .. suffix
end
function p.CDD(frame)
-- For calling from #invoke.
local pframe = frame:getParent()
local args = pframe.args
return p._CDD(args)
end
function p._CDD(args)
-- For calling from other Lua modules.
local body ='<span style="display:inline-block;">' -- create and start the output string
local double = false -- experimental only, scale to 2x and see what happens
for v, x in ipairs(args) do -- process params, ignoring any names
if (x == 'DOUBLE') then
double = true
elseif (x ~= '') then -- check for null/empty names
body = body .. show_image(x, double) -- write file for this parameter
end
end
body = body .. "</span>" -- finish output string
return body -- return result
end
return p