Module:Gaps: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>The Mol Man ←Created page with 'local p = {} function p._make(frame) local parameters = frame:getParent().args local ret_string = '<span style="white-space: nowrap;'..parameters['size'] or...' |
m 25 revisions imported |
||
(24 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
function p. | local getArgs | ||
local | |||
function p.main(frame) | |||
if not getArgs then | |||
getArgs = require('Module:Arguments').getArgs | |||
end | |||
local args = getArgs(frame, {wrappers = 'Template:Gaps'}) | |||
local ret = mw.html.create('span') | |||
:css({['white-space'] = 'nowrap', | |||
['font-size'] = args.size}) | |||
if args.lhs then | |||
ret:wikitext(args.lhs .. ' = ') | |||
end | |||
local gap = string.lower(args.gap or '') | |||
local gapSize, gapUnit = string.match(gap,'([%d%.]+)%s*([ep][mnx])') | |||
local | local acceptedUnits = { em = 'em', en = 'en', px = 'px' } | ||
gapUnit = acceptedUnits[gapUnit] | |||
if gapSize and gapUnit then | |||
gap = gapSize..gapUnit | |||
else | |||
gap = '0.25em' | |||
end | end | ||
for | for k,v in ipairs(args) do | ||
if k == 1 then | |||
ret:wikitext(v) | |||
else | |||
ret:tag('span') | |||
:css('margin-left',gap) | |||
:wikitext(v) | |||
end | end | ||
end | end | ||
if | if args.e then | ||
ret | |||
:tag('span') | |||
:css({['margin-left'] = '0.27em', | |||
['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 | if args.u then | ||
ret:wikitext(' ' .. args.u) | |||
end | end | ||
return | return ret | ||
end | end | ||
return p | return p |
Latest revision as of 13:52, 3 September 2020
Documentation for this module may be created at Module:Gaps/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 = mw.html.create('span')
:css({['white-space'] = 'nowrap',
['font-size'] = args.size})
if args.lhs then
ret:wikitext(args.lhs .. ' = ')
end
local gap = string.lower(args.gap or '')
local gapSize, gapUnit = string.match(gap,'([%d%.]+)%s*([ep][mnx])')
local acceptedUnits = { em = 'em', en = 'en', px = 'px' }
gapUnit = acceptedUnits[gapUnit]
if gapSize and gapUnit then
gap = gapSize..gapUnit
else
gap = '0.25em'
end
for k,v in ipairs(args) do
if k == 1 then
ret:wikitext(v)
else
ret:tag('span')
:css('margin-left',gap)
:wikitext(v)
end
end
if args.e then
ret
:tag('span')
:css({['margin-left'] = '0.27em',
['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:wikitext(' ' .. args.u)
end
return ret
end
return p