-- This module may be used to assist with converting ascii tables to a rugby sports tablelocal p =
local non_standard_abbreviations =
local function abbreviate(s) s = mw.ustring.gsub(s, '%s', ) s = non_standard_abbreviations[s] or s s = mw.ustring.upper(s) s = mw.ustring.sub(s .. ' ', 1, 3) return send
function p.main(frame) -- grab the input local text = '\n' .. (frame.args[1] or ) .. '\n' -- split into lines local lines = mw.text.split(text, '[\r\n]') -- join split lines for k,v in ipairs(lines) do if mw.ustring.match(v, '^%s*%d%d*%s*logo%s*') then lines[k] = if mw.ustring.match(lines[k+1] or , '^%s*[A-Z][^0-9]*$') then if mw.ustring.match(lines[k+2] or , '^%s*[0-9]') then lines[k+1] = lines[k+1] .. ' ' .. lines[k+2] lines[k+2] = end end end end -- hash to keep track of team abbreviations local abbrevs = -- strings to keep the result local top, mid, bot = '| team_order = ', , -- process the input local labels = for k,v in ipairs(lines) do if mw.ustring.match(v, '^%s*[A-Z][^0-9]*%s[0-9].-$') then -- strip the team name from the line local team = mw.ustring.gsub(v, '^%s*([A-Z][^0-9]*)%s[0-9].-$', '%1') v = mw.ustring.gsub(v, '^%s*[A-Z][^0-9]*%s([0-9].-)$', '%1') -- team abbreviation local abbr = abbreviate(team) if abbrevs[abbr] then abbr = abbr .. k else abbrevs[abbr] = '1' end top = top .. abbr .. ', ' bot = bot .. '| name_' .. abbr .. ' = ' .. team .. '\n' -- split the remainder local stats = mw.text.split(v or 'ERROR', '%s%s*') -- format stats for j = 1,#labels do if (labels[j] and labels[j] ~= ) then if labels[j]
' .. top .. '\n\n' .. mid .. '\n' .. bot .. ''end
return p