Módulo:Pre

Origem: Wikipédia, a enciclopédia livre.
local p = {}

function p.pre(frame)
	mytxt = frame.args[1] or ""
	i = 2
	while frame.args[i] do
		mytxt = mytxt .. '|' .. frame.args[i]
		i = i + 1
	end
	
	return '<div style="white-space: pre; line-height: 0.6em;" class="mw-code">' .. to_HTML(mytxt) .. '</div>'
end

function to_HTML(str)
	-- converte spaços, tabs e quebras de linha em elementos HTML
	-- &#09; = tab
	-- &#32; = espaço comum, provoca quebra de linhas (é diferente do &nbsp;)
	return str:gsub(' ','&#32;'):gsub('\t','&#09'):gsub('\n','<br/>')
end

return p