Difference between revisions of "Module:Gaps/sandbox"

From blackwiki
Jump to navigation Jump to search
blackwiki>Mirokado
(add terminating /span)
blackwiki>Jackmcbarn
(sync)
Line 8: Line 8:
 
end
 
end
 
local args = getArgs(frame, {wrappers = 'Template:Gaps'})
 
local args = getArgs(frame, {wrappers = 'Template:Gaps'})
local size
+
 
+
local ret_span = mw.html.create('span')
if args.size then
+
:css('white-space','nowrap')
size = ';font-size:' .. args.size
+
:css('font-size',args.size)
else
+
 
size = ''
 
end
 
 
local ret_string = '<span style="white-space:nowrap' .. size .. '">'
 
 
 
if args.lhs then
 
if args.lhs then
ret_string = ret_string .. args.lhs .. ' = '
+
ret_span:wikitext(args.lhs .. ' = ')
 
end
 
end
+
 
for _,v in ipairs(args) do
+
for k,v in ipairs(args) do
ret_string = ret_string .. '<span style="margin-left: 0.2em">' ..  v .. '</span>'
+
if k == 1 then
 +
ret_span:wikitext(v)
 +
else
 +
ret_span:tag('span')
 +
:css('margin-left','0.2em')
 +
:wikitext(v)
 +
end
 
end
 
end
+
 
 
if args.e then
 
if args.e then
local base = args.base or '10'
+
ret_span
ret_string = ret_string .. '<span style="margin-left: 0.27em; margin-right: 0.27em">×</span>'..
+
:tag('span')
base .. '<span style="display:none">^</span><sup>' .. args.e:gsub('-','−') .. '</sup>'
+
: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')
 +
-- the double parentheses here are not redundant.
 +
-- they keep the second return value from being passed
 +
:wikitext((mw.ustring.gsub(args.e,'-','−')))
 +
:done()
 
end
 
end
+
 
 
if args.u then
 
if args.u then
ret_string = ret_string .. '&nbsp;' .. args.u
+
ret_span:wikitext('&nbsp;' .. args.u)
 
end
 
end
+
 
ret_string = ret_string .. '</span>'
+
return ret_span
 
return ret_string
 
 
end
 
end
  
 
return p
 
return p

Revision as of 17:51, 11 July 2014

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

local p = {}

local getArgs

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

	for k,v in ipairs(args) do
		if k == 1 then
			ret_span:wikitext(v)
		else
			ret_span:tag('span')
				:css('margin-left','0.2em')
				:wikitext(v)
		end
	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')
				-- the double parentheses here are not redundant.
				-- they keep the second return value from being passed
				:wikitext((mw.ustring.gsub(args.e,'-','−')))
			:done()
	end

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

	return ret_span
end

return p