Module:Sandbox/Sameboat/m3 explained

local p =

local function pre_block(text) -- Pre tags returned by a module do not act like wikitext

...
. return '
' ..
		mw.text.nowiki(text) ..
		(text:sub(-1) == '\n' and '' or '\n') ..
		'
\n'end

function p.trimmer(frame)-- Trims first and last empty icon cell of each row. local org = mw.text.unstripNoWiki(frame.args[1]) or 'Paste Routemap RDT markups between the nowiki tags' local res = org local restable = for i, v in ipairs(mw.text.split(res, '\n')) do v = mw.text.split(v, '\\') for _ in ipairs(v) do if v[1]

and v[table.maxn(v)]

then table.remove(v, 1) table.remove(v, table.maxn(v)) end restable.row = table.concat(v, '\\') end table.insert(restable, restable.row) end --return table.concat(restable, '\n') return "\nTrimmed:\n" .. pre_block(table.concat(restable, '\n')) .. "Before trimming:\n" .. pre_block(org) --return table.maxn(mw.text.split(1\2\3\4\5, '\\')) --return table.concat(mw.text.split(mw.text.trim(org), '\\'), '\\') --return table.concat(mw.text.split(\\\STR\STR\\, '\\'), '\\')end

function p.trimmer2(frame)-- Trims first and last empty icon cell of each row. local org = mw.text.unstripNoWiki(frame.args[1]) or 'Paste Routemap RDT markups between the nowiki tags' local res = org local restable = for i, v in ipairs(mw.text.split(res, '\n')) do v = mw.text.split(v, '! !') for i2, v2 in ipairs(v) do v2 = mw.text.split(v2, '~~') for i3, v3 in ipairs(v) do v3 = mw.text.split(v3, '\\') for _ in ipairs(v3) do if v3[1]

and v[table.maxn(v3)]

then table.remove(v3, 1) table.remove(v3, table.maxn(v3)) end restable.icon = table.concat(v3, '\\') end restable.right = table.insert(restable.right, restable.icon) restable.right2 = table.concat(restable.right, '~~') end restable.left = table.insert(restable.left, restable.right2) restable.left2 = table.concat(restable.left, '! !') end restable.row = table.insert(restable.row, restable.left2) end return "\nTrimmed:\n" .. pre_block(table.concat(restable.row, '\n')) .. "Before trimming:\n" .. pre_block(org)end

return p