Module:Gaps: Difference between revisions

From Zoophilia Wiki
Jump to navigationJump to search
meta>Jackmcbarn
don't set a gap on the first parameter, and rm unnecessary variable
meta>Jackmcbarn
use the metamethod
Line 22: Line 22:


-- don't process the first parameter again here
-- don't process the first parameter again here
for _,v in ipairsaux,args,1 do
for _,v in getmetatable(args).__ipairs,args,1 do
ret_span:tag('span')
ret_span:tag('span')
:css('margin-left','0.2em')
:css('margin-left','0.2em')

Revision as of 17:37, 11 July 2014

Documentation for this module may be created at Module:Gaps/doc

local p = {}

local getArgs

local ipairsaux = ipairs{}

function p.main(frame)
	if not getArgs then
		getArgs = require('Module:Arguments').getArgs
	end
	local args = getArgs(frame, {wrappers = 'Template:Gaps'})

	local ret_span = mw.html.create('span')
		:css('white-space','nowrap')
		:css('font-size',args.size)

	if args.lhs then
		ret_span:wikitext(args.lhs .. ' = ')
	end
	
	ret_span:wikitext(args[1])

	-- don't process the first parameter again here
	for _,v in getmetatable(args).__ipairs,args,1 do
		ret_span:tag('span')
			:css('margin-left','0.2em')
			:wikitext(v)
	end

	if args.e then
		ret_span
			:tag('span')
				:css('margin-left','0.27em')
				:css('margin-right','0.27em')
				:wikitext('×')
			:done()
			:wikitext(args.base or '10')
			:tag('span')
				:css('display','none')
				:wikitext('^')
			:done()
			:tag('sup')
				:wikitext(args.e:gsub('-','−'))
			:done()
	end

	if args.u then
		ret_span:wikitext(' ' .. args.u)
	end

	return ret_span
end

return p