Difference between revisions of "Module:Jctbtm"
Jump to navigation
Jump to search
blackwiki>Happy5214 (Sync with sandbox: Close table with wikitext.) |
m (23 revisions imported) |
||
| (2 intermediate revisions by 2 users not shown) | |||
| 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 row | ||
| Line 22: | Line 20: | ||
local function createLegend(key) | local function createLegend(key) | ||
| − | + | local legend = row:tag('div'):addClass('hlist'):cssText("margin-left:1.6em;text-align:center;font-size:90%"):tag('ul') | |
| − | local legend = row | ||
for k,v in ipairs(key) do | for k,v in ipairs(key) do | ||
local type = types[v] | local type = types[v] | ||
if type then | if type then | ||
| − | legend | + | legend:tag('li'):tag('span'):css('border', '1px solid #000'):css('background-color', type.color):css('color', type.color):wikitext(" "):done():wikitext(" "):wikitext(type.jctbtm) |
end | end | ||
end | end | ||
| Line 33: | Line 30: | ||
function p._jctbtm(args) | function p._jctbtm(args) | ||
| − | local root = | + | local root = mw.html.create() |
| − | row = root | + | row = root:tag('tr'):tag('td') |
local cols = args.col or columns[args[1]] or columns.default -- Compute the number of columns, either from an explicit parameter, or by looking at the columns table. | local cols = args.col or columns[args[1]] or columns.default -- Compute the number of columns, either from an explicit parameter, or by looking at the columns table. | ||
| − | row | + | row:attr('colspan', cols):addClass('wikitable hlist'):css("text-align", "center"):css("background-color", "#eaecf0") -- Define the footer. |
| − | + | if (args.conv or 'yes') == 'yes' then | |
| − | + | row:wikitext("1.000 mi = 1.609 km; 1.000 km = 0.621 mi<br>") | |
| − | |||
| − | |||
end | end | ||
| − | |||
local key = parameterParser(args) | local key = parameterParser(args) | ||
| Line 52: | Line 46: | ||
local page = mw.title.getCurrentTitle() | local page = mw.title.getCurrentTitle() | ||
local pagename = page.prefixedText | local pagename = page.prefixedText | ||
| − | row | + | row:wikitext(string.format("[[Category:Jctbtm temporary tracking category|# %s]]", pagename)) |
end | end | ||
| − | + | row:wikitext(args.notes or args.key) -- If additional notes are provided, display them. | |
| − | |||
| − | + | if #row.nodes == 0 then | |
| − | |||
return '|-\n|}' | return '|-\n|}' | ||
else | else | ||
| Line 67: | Line 59: | ||
function p.jctbtm(frame) | function p.jctbtm(frame) | ||
| − | + | return p._jctbtm(require('Module:Arguments').getArgs(frame)) | |
| − | return p._jctbtm( | ||
end | end | ||
return p | return p | ||
Latest revision as of 05:48, 27 September 2020
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 row
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
local function createLegend(key)
local legend = row:tag('div'):addClass('hlist'):cssText("margin-left:1.6em;text-align:center;font-size:90%"):tag('ul')
for k,v in ipairs(key) do
local type = types[v]
if type then
legend:tag('li'):tag('span'):css('border', '1px solid #000'):css('background-color', type.color):css('color', type.color):wikitext(" "):done():wikitext(" "):wikitext(type.jctbtm)
end
end
end
function p._jctbtm(args)
local root = mw.html.create()
row = root:tag('tr'):tag('td')
local cols = args.col or columns[args[1]] or columns.default -- Compute the number of columns, either from an explicit parameter, or by looking at the columns table.
row:attr('colspan', cols):addClass('wikitable hlist'):css("text-align", "center"):css("background-color", "#eaecf0") -- Define the footer.
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) 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