Module:FloorNumber
Documentation for this module may be created at Module:FloorNumber/doc
local ordinal = require('Module:Ordinal')._main
local yn = require('Module:Yesno')
local p = {}
function p.main(frame)
return p._main(frame:getParent().args)
end
function p._main(args)
local nohelp = yn(args.nohelp) or string.lower(tostring(args[3])) == 'nohelp'
local caps = yn(args.caps) or string.lower(tostring(args[2])) == 'caps'
local flr = tonumber(args.uk)
if not flr then
flr = tonumber(args.us) or tonumber(args[1]) or 1
flr = flr - 1
end
local flr_us = flr+1
local ord_gb = ordinal(flr, {nosup=true, nonum=true})
local ord_us = ordinal(flr_us, {nosup=true, nonum=true})
local ret = mw.html.create('span')
ret:addClass('floornumber')
local spn_gb = ret:tag('span')
spn_gb :addClass('floornumber-gb')
if flr == 0 then
if caps then
spn_gb:wikitext('Ground')
else
spn_gb:wikitext('ground')
end
else
spn_gb:wikitext(flr)
:tag('sup')
:addClass('floornumber-ordinal-suffix')
:wikitext(ord_gb)
:done()
end
spn_gb:wikitext(' floor')
if not nohelp then
spn_gb:tag('sup')
:addClass('floornumber-help')
:wikitext('[')
:tag('span')
:addClass('fact-text')
:addClass('floor-convention')
:attr('title', 'British convention; floor '..flr_us..' in the US')
:wikitext('UK')
:done()
:wikitext(']')
end
local spn_us = ret:tag('span')
spn_us :addClass('floornumber-us')
:wikitext(flr_us)
:tag('sup')
:addClass('floornumber-ordinal-suffix')
:wikitext(ord_us)
:done()
:wikitext(' floor')
:done()
if not nohelp then
local flr_gb
if flr == 0 then
flr_gb = 'ground floor'
else
flr_gb = 'floor '..flr
end
spn_us:tag('sup')
:addClass('floornumber-help')
:wikitext('[')
:tag('span')
:addClass('fact-text')
:addClass('floor-convention')
:attr('title', 'US convention; '..flr_gb..' in the UK')
:wikitext('US')
:done()
:wikitext(']')
end
return ret
end
return p