Module:Mctxt

local getArgs = require('Module:Arguments').getArgs

local p = {}

function p.raw( frame ) local args = getArgs(frame) return p._raw(args[1], args.size or args[2], args.style) end

function p._raw( str, size, style ) str = str:gsub('\n', '/') size = tonumber(size) and (size .. 'px') or size or '12px' local s = str:gsub('\\\\', '\253'):gsub('\\/', '\254'):gsub('\\&', '\255'):gsub('/', '&r &7') s = ' ' .. s .. '&r ' while (s:match('&[0-9a-fk-o]')) do		s = s:gsub('&([0-9a-fk-o])(.-)(&[0-9a-fr])', '%2&r %3') end s = s:gsub('&r', ''):gsub('\253', '\\\\'):gsub('\254', '\\/'):gsub('\255', '\\&'):gsub('\\(.)', '%1') return (' %s '):format(size, style or '', s) end

function p.dialogue( frame ) local args = getArgs(frame) return p._dialogue(args[1], args.size or args[2], args.style) end

function p._dialogue( str, size, style ) return '' .. p._raw(str, size or 11) .. ' ' end

return p