Module:Jctbtm/sandbox: Difference between revisions
Appearance
Content deleted Content added
No edit summary |
sync + module:List change |
||
Line 2: | Line 2: | ||
local types = mw.loadData("Module:Road data/RJL types") |
local types = mw.loadData("Module:Road data/RJL types") |
||
local row |
|||
local columns = { -- Constants for how many columns different list types should have. |
local columns = { -- Constants for how many columns different list types should have. |
||
Line 17: | Line 15: | ||
table.sort(keys) |
table.sort(keys) |
||
return keys |
return keys |
||
end |
|||
local function createLegend(key) |
|||
local legend = row:tag('div') |
|||
:addClass('jct-bottom-legend') |
|||
:wikitext(mw.getCurrentFrame():expandTemplate{title="flatlist"}) |
|||
:tag('ul') |
|||
for k,v in ipairs(key) do |
|||
local type = types[v] |
|||
if type then |
|||
legend |
|||
:tag('li') |
|||
:tag('span') |
|||
:css('background-color', type.color) |
|||
:wikitext(" ") |
|||
:done() |
|||
:wikitext(" ") |
|||
:tag('span') |
|||
:css('border', '0px') |
|||
:addClass('nowrap') |
|||
:wikitext(type.jctbtm) |
|||
:done() |
|||
end |
|||
end |
|||
legend |
|||
:done() |
|||
:wikitext(mw.getCurrentFrame():expandTemplate{title="endflatlist"}) |
|||
end |
end |
||
Line 65: | Line 36: | ||
local key = parameterParser(args) |
local key = parameterParser(args) |
||
if key[1] then createLegend(key) end |
if key[1] then createLegend(key, row) end |
||
local keyParam = args.key |
local keyParam = args.key |
Revision as of 04:26, 27 December 2022
![]() | This is the module sandbox page for Module:Jctbtm (diff). |
![]() | This Lua module is used on approximately 16,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
![]() | This module depends on the following other modules: |
![]() | This module uses TemplateStyles: |
This module implements the {{Jctbtm}} template. Please see the template page for usage instructions.
Usage
{{#invoke:Jctbtm|jctbtm}}
Tracking/maintenance category
local p = {}
local types = mw.loadData("Module:Road data/RJL types")
local columns = { -- Constants for how many columns different list types should have.
default = 6, -- default
exit = 7, -- default + exit number
old = 8, -- default + exit number + old exit number
}
local function parameterParser(args)
local keysParam = args.keys
if not(keysParam) then return {} end
local keys = mw.text.split(keysParam, ",")
table.sort(keys)
return keys
end
function p._jctbtm(args)
local root = mw.html.create()
local cols = args.col or columns[args[1]] or columns.default
row = root
:tag('tr')
:tag('td')
:attr('colspan', cols)
:addClass('jct-bottom')
:wikitext(mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Jctbtm/styles.css' }
})
if (args.conv or 'yes') == 'yes' then
row:wikitext("1.000 mi = 1.609 km; 1.000 km = 0.621 mi<br>")
end
local key = parameterParser(args)
if key[1] then createLegend(key, row) end
local keyParam = args.key
if keyParam then -- This is a deprecated parameter
local page = mw.title.getCurrentTitle()
local pagename = page.prefixedText
row:wikitext(string.format("[[Category:Jctbtm temporary tracking category|# %s]]", pagename))
end
row:wikitext(args.notes or args.key) -- If additional notes are provided, display them.
if #row.nodes == 0 then
return '|-\n|}'
else
return tostring(root) .. '\n|-\n|}'
end
end
function p.jctbtm(frame)
return p._jctbtm(require('Module:Arguments').getArgs(frame))
end
return p