Module:Jctbtm: Difference between revisions
Appearance
Content deleted Content added
Sync with sandbox: Close table with wikitext. |
Jackmcbarn (talk | contribs) use mw.html and other fixes from sandbox |
||
Line 2: | Line 2: | ||
local types = mw.loadData("Module:Road data/RJL types") |
local types = mw.loadData("Module:Road data/RJL types") |
||
local HtmlBuilder = require "Module:HtmlBuilder" -- Import module to build HTML code |
|||
local getArgs = require('Module:Arguments').getArgs -- Import module function to work with passed arguments |
|||
local row |
local row |
||
Line 22: | Line 20: | ||
local function createLegend(key) |
local function createLegend(key) |
||
⚫ | |||
local format = mw.ustring.format |
|||
⚫ | |||
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", "#f2f2f2") -- Define the footer. |
||
⚫ | |||
local conversion |
|||
⚫ | |||
local conv = args.conv or 'yes' |
|||
⚫ | |||
⚫ | |||
end |
end |
||
row.wikitext(conversion) |
|||
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. |
|||
row.wikitext(notes) -- If additional notes are provided, display them. |
|||
if #row.nodes == 0 then |
|||
if #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(args) |
|||
end |
end |
||
Revision as of 01:36, 5 December 2014
![]() | 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 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", "#f2f2f2") -- 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