Módulo:Outdent – Wikipédia, a enciclopédia livre

local p = {} local getArgs = require('Módulo:Arguments').getArgs  function p.outdent (frame)  	local args = getArgs (frame) 	local count = 0 	local Start = '┌' 	local End = '┘' 	local i = 0 	local line = '' 	local outside = mw.html.create('span') 	local indentTable = {'reverter','indentar','in','r'}                           -- lista de parâmetros que significam reverter/indentar 	 	for k,v in pairs(indentTable) do                                            -- definir início e fim se revertido 		if args[v] then 			Start = '└' 			End = '┐' 		end 	end 	 	if not args[1] then args[1] = '' end                                        --  args[1] deixa de ser nil (nulo) 	 	for _ in string.gmatch(args[1],':')  do 		count = count+1                                                         --  aumentar count (contagem) para cada : (dois-pontos) 	end 	 	for _ in string.gmatch(args[1],'*') do 		count = count+1                                                         -- aumentar count para cada * (asterisco) 	end 	 	for _ in string.gmatch(args[1],'#') do 		count = count+2                                                         -- aumentar count em 2 para cada # (cerquilha) 	end 	 	if count == 0 then                                                          -- definir count para args[1] caso necessário 		count = tonumber(args[1]) 	end 	 	 	if not count then 		count = 10                                                              -- 10 default 	end 	 	if count > 40 then 		count = 40                                                              -- 40 max 	end 	 	count = count * 1.6 - 0.7                                                   -- converter para width (largura) 	 	local lineMath = math.ceil(count * 1.6) 	 	while i < lineMath do                                                       -- criar linha 		line = line..'─' 		i = i+1 	end 	 	if count == - 0.7 then                                                      -- definir para pipe | se count fosse 0                                  		line = '|' 		Start = '' 		End = '' 	end 	 	outside                                                                     -- criar tag span 		:addClass('outdent-template') 		:css('display','block') 		:css('margin-top','-0.5em') 		:css('color','#AAA;')                                                   		:wikitext('<span style="display:inline-block; overflow:hidden;">'..Start..'</span>') -- começo 		:wikitext('<span style="display:inline-block; overflow:hidden; word-wrap:normal; width:'..count..'em;">'..line..'</span>') -- meio 		:wikitext('<span style="display:inline-block; overflow:hidden;">'..End..'</span>') -- fim 	if line ~= '|' then                                                         -- mesmo que if not pipe (|) (se não for pipe) 		outside 			:css('position','relative')                                              			:css('left','-0.25em')   	else 		outside 			:css('margin-top','0.25em') 	end 	 	if args['testar_largura_da_linha'] then                                             -- usado para testar largura da linha antes e depois da redução da largura 		return 'Antes:'..'<br />'..line..'<br />'..'Depois:'..'<br />'..'<span style="display:inline-block;overflow:hidden;word-wrap:normal;width:'..count..'em;">'..line..'</span>'..'<br />'..'Final:'..'<br />'..tostring(outside) 	end 	 	if args[2] then 		local note = mw.html.create('span') 		note:wikitext('([[Wikipédia:Indentação#Recomeço|desindentação]])&#32;')    -- adicionar (desindentação) caso necessário 		return tostring(outside)..tostring(note) 	else 		return outside 	end 	 end  return p