Difference between revisions of "Module:Rail-interchange multi/sandbox"
Jump to navigation
Jump to search
blackwiki>Jc86035 m (fix frame) |
blackwiki>Jc86035 m (test) |
||
| Line 4: | Line 4: | ||
local data = frame.args[1] | local data = frame.args[1] | ||
local div = frame.args['div'] | local div = frame.args['div'] | ||
| − | local result, sep = '', '' | + | local result, sep, default = '', '' |
| − | |||
local args = {} | local args = {} | ||
| + | data = mw.text.split(data, '+') | ||
for i1, v1 in ipairs(data) do | for i1, v1 in ipairs(data) do | ||
| + | args = {} | ||
if v1 ~= '' and v1 ~= '\\' then | if v1 ~= '' and v1 ~= '\\' then | ||
local tmp = mw.text.split(v1, '\\') | local tmp = mw.text.split(v1, '\\') | ||
| − | if | + | if i1 == 1 then |
| + | default = mw.clone(tmp[1]) | ||
| + | else | ||
| + | sep = ' ' | ||
| + | end | ||
for i2, v2 in ipairs(tmp) do | for i2, v2 in ipairs(tmp) do | ||
if i2 < 5 then | if i2 < 5 then | ||
if i2 == 1 then | if i2 == 1 then | ||
| − | + | args[i2] = ((v2 == '' and nil or v2) or default) | |
| − | |||
| − | |||
else | else | ||
args[i2] = (v2 == '' and nil or v2) | args[i2] = (v2 == '' and nil or v2) | ||
| Line 27: | Line 30: | ||
end | end | ||
end | end | ||
| − | if div == 'yes' or div == 'y' then result = '<div style="display: table-cell; vertical-align: middle; padding-left: 3px; white-space: nowrap | + | if div == 'yes' or div == 'y' then result = '<div style="display:table-cell;vertical-align:middle;padding-left:3px;white-space:nowrap">' .. result .. '</div>' end |
return result | return result | ||
end | end | ||
| − | + | ||
function p.doublerow(frame) | function p.doublerow(frame) | ||
local data = frame.args[1] | local data = frame.args[1] | ||
| − | local result, sep = '', '' | + | local result, sep, default = '', '' |
| − | |||
local args = {} | local args = {} | ||
local sep_code = { | local sep_code = { | ||
[0] = '<br/>', | [0] = '<br/>', | ||
| − | [1] = '</div><div style="display: table-cell; vertical-align: middle; padding-left: 3px; white-space: nowrap | + | [1] = '</div><div style="display:table-cell;vertical-align:middle;padding-left:3px;white-space:nowrap">' |
} | } | ||
| + | data = mw.text.split(data, '+') | ||
for i1, v1 in ipairs(data) do | for i1, v1 in ipairs(data) do | ||
| + | args = {} | ||
if v1 ~= '' and v1 ~= '\\' then | if v1 ~= '' and v1 ~= '\\' then | ||
local tmp = mw.text.split(v1, '\\') | local tmp = mw.text.split(v1, '\\') | ||
| − | if | + | if i1 == 1 then |
| + | default = mw.clone(tmp[1]) | ||
| + | else | ||
| + | sep = sep_code[i1 % 2] | ||
| + | end | ||
for i2, v2 in ipairs(tmp) do | for i2, v2 in ipairs(tmp) do | ||
if i2 < 5 then | if i2 < 5 then | ||
if i2 == 1 then | if i2 == 1 then | ||
| − | + | args[i2] = ((v2 == '' and nil or v2) or default) | |
| − | |||
| − | |||
else | else | ||
args[i2] = (v2 == '' and nil or v2) | args[i2] = (v2 == '' and nil or v2) | ||
| Line 60: | Line 66: | ||
end | end | ||
end | end | ||
| − | result = '<div style="display: table-cell; vertical-align: middle; padding-left: 3px; white-space: nowrap | + | result = '<div style="display:table-cell;vertical-align:middle;padding-left:3px;white-space:nowrap">' .. result .. '</div>' |
return result | return result | ||
end | end | ||
return p | return p | ||
Revision as of 01:15, 23 September 2019
Documentation for this module may be created at Module:Rail-interchange multi/sandbox/doc
local p = {}
function p.row(frame)
local data = frame.args[1]
local div = frame.args['div']
local result, sep, default = '', ''
local args = {}
data = mw.text.split(data, '+')
for i1, v1 in ipairs(data) do
args = {}
if v1 ~= '' and v1 ~= '\\' then
local tmp = mw.text.split(v1, '\\')
if i1 == 1 then
default = mw.clone(tmp[1])
else
sep = ' '
end
for i2, v2 in ipairs(tmp) do
if i2 < 5 then
if i2 == 1 then
args[i2] = ((v2 == '' and nil or v2) or default)
else
args[i2] = (v2 == '' and nil or v2)
end
end
end
if args[1] or args[2] then
result = result .. sep .. frame:expandTemplate{ title = 'Rail-interchange', args = args }
end
end
end
if div == 'yes' or div == 'y' then result = '<div style="display:table-cell;vertical-align:middle;padding-left:3px;white-space:nowrap">' .. result .. '</div>' end
return result
end
function p.doublerow(frame)
local data = frame.args[1]
local result, sep, default = '', ''
local args = {}
local sep_code = {
[0] = '<br/>',
[1] = '</div><div style="display:table-cell;vertical-align:middle;padding-left:3px;white-space:nowrap">'
}
data = mw.text.split(data, '+')
for i1, v1 in ipairs(data) do
args = {}
if v1 ~= '' and v1 ~= '\\' then
local tmp = mw.text.split(v1, '\\')
if i1 == 1 then
default = mw.clone(tmp[1])
else
sep = sep_code[i1 % 2]
end
for i2, v2 in ipairs(tmp) do
if i2 < 5 then
if i2 == 1 then
args[i2] = ((v2 == '' and nil or v2) or default)
else
args[i2] = (v2 == '' and nil or v2)
end
end
end
if args[1] or args[2] then
result = result .. sep .. frame:expandTemplate{ title = 'Rail-interchange', args = args }
end
end
end
result = '<div style="display:table-cell;vertical-align:middle;padding-left:3px;white-space:nowrap">' .. result .. '</div>'
return result
end
return p