Module:Routelist bottom/sandbox: Difference between revisions
Appearance
Content deleted Content added
sync |
let's see how much I've broken |
||
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 function parameterParser(args) |
local function parameterParser(args) |
||
Line 13: | Line 11: | ||
end |
end |
||
local function createLegend(key) |
local function createLegend(key, html_object) |
||
local |
local listargs = { |
||
class = 'routelist-bottom-legend' |
|||
} |
|||
:tag('ul') |
|||
for |
for _,v in ipairs(key) do |
||
local type = types[v] |
local type = types[v] |
||
if type then |
if type then |
||
table.insert( |
|||
legend |
|||
listargs, |
|||
⚫ | |||
:tag('span') |
|||
'"> </span> ' .. type.routelist |
|||
⚫ | |||
) |
|||
:wikitext(" ") |
|||
:done() |
|||
:wikitext(" ") |
|||
:wikitext(type.routelist) |
|||
end |
end |
||
end |
end |
||
html_object:wikitext(require('Module:List').horizontal(listargs)) |
|||
end |
end |
||
Line 50: | Line 48: | ||
local key = parameterParser(args) |
local key = parameterParser(args) |
||
if key[1] then createLegend(key) end |
if key[1] then createLegend(key, row) end |
||
if #row.nodes == 0 then |
if #row.nodes == 0 then |
Latest revision as of 03:21, 27 December 2022
![]() | This is the module sandbox page for Module:Routelist bottom (diff). |
![]() | This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
![]() | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
![]() | This module depends on the following other modules: |
![]() | This module uses TemplateStyles: |
Usage
[edit]{{#invoke:Routelist bottom|function_name}}
local p = {}
local types = mw.loadData("Module:Road data/RJL types")
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, html_object)
local listargs = {
class = 'routelist-bottom-legend'
}
for _,v in ipairs(key) do
local type = types[v]
if type then
table.insert(
listargs,
'<span style="background-color: ' .. type.color ..
'"> </span> ' .. type.routelist
)
end
end
html_object:wikitext(require('Module:List').horizontal(listargs))
end
function p._bottom(args)
local root = mw.html.create('tr'):addClass('sortbottom')
row = root:tag('td')
row:attr('colspan', '9')
:addClass('routelist-bottom')
-- we would prefer to add the TemplateStyles before the class is declared
-- but that's not really feasible in this particular table context
:wikitext(mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Routelist bottom/styles.css' }
})
local conversion
if (args.conv or 'no') == 'yes' then
conversion = "1.000 mi = 1.609 km; 1.000 km = 0.621 mi<br>"
end
row:wikitext(conversion)
local key = parameterParser(args)
if key[1] then createLegend(key, row) end
if #row.nodes == 0 then
return '|-\n|}'
else
return tostring(root) .. '\n|-\n|}'
end
end
function p.bottom(frame)
return p._bottom(require('Module:Arguments').getArgs(frame))
end
return p