Difference between revisions of "Module:Coxeter–Dynkin diagram/sandbox"

From blackwiki
Jump to navigation Jump to search
blackwiki>Eiim
(Testing using SVGs over PNGs)
blackwiki>GKFX
(use SVG images where checked and good enough)
Line 2: Line 2:
 
-- See the template documentation or any example for how it is used and works.
 
-- See the template documentation or any example for how it is used and works.
 
local p = {}
 
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)
 
function p.CDD(frame)
Line 13: Line 33:
 
-- For calling from other Lua modules.
 
-- For calling from other Lua modules.
 
local body ='<span style="display:inline-block;">'        -- create and start the output string
 
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
 
for v, x in ipairs(args) do                                -- process params, ignoring any names
 +
if (x == 'DOUBLE') then
 +
double = true
 +
end
 
if (x ~= '') then -- check for null/empty names
 
if (x ~= '') then -- check for null/empty names
−
        body = body .. "[[File:CDel_" .. x .. ".svg|link=]]"  -- write file for this parameter
+
        body = body .. show_image(x, double)    -- write file for this parameter
 
end
 
end
 
end
 
end

Revision as of 14:16, 1 April 2020

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
		end
		if (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