<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://dicionario.advogadocompleto.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ALista</id>
	<title>Módulo:Lista - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://dicionario.advogadocompleto.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ALista"/>
	<link rel="alternate" type="text/html" href="https://dicionario.advogadocompleto.com/index.php?title=M%C3%B3dulo:Lista&amp;action=history"/>
	<updated>2026-05-15T16:47:35Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://dicionario.advogadocompleto.com/index.php?title=M%C3%B3dulo:Lista&amp;diff=230&amp;oldid=prev</id>
		<title>Itaymbere: Criou página com &#039;local libUtil = require(&#039;libraryUtil&#039;) local checkType = libUtil.checkType local mTableTools = require(&#039;Módulo:TableTools&#039;)  local p = {}  local listTypes = { 	[&#039;bulleted&#039;] = true, 	[&#039;unbulleted&#039;] = true, 	[&#039;horizontal&#039;] = true, 	[&#039;ordered&#039;] = true, 	[&#039;horizontal_ordered&#039;] = true }  function p.makeListData(listType, args) 	-- Constrói uma tabela de dados para ser passada para p.renderList. 	local data = {}  	-- Classes e TemplateStyles 	data.classes = {} 	data.template...&#039;</title>
		<link rel="alternate" type="text/html" href="https://dicionario.advogadocompleto.com/index.php?title=M%C3%B3dulo:Lista&amp;diff=230&amp;oldid=prev"/>
		<updated>2026-03-29T20:07:33Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;local libUtil = require(&amp;#039;libraryUtil&amp;#039;) local checkType = libUtil.checkType local mTableTools = require(&amp;#039;Módulo:TableTools&amp;#039;)  local p = {}  local listTypes = { 	[&amp;#039;bulleted&amp;#039;] = true, 	[&amp;#039;unbulleted&amp;#039;] = true, 	[&amp;#039;horizontal&amp;#039;] = true, 	[&amp;#039;ordered&amp;#039;] = true, 	[&amp;#039;horizontal_ordered&amp;#039;] = true }  function p.makeListData(listType, args) 	-- Constrói uma tabela de dados para ser passada para p.renderList. 	local data = {}  	-- Classes e TemplateStyles 	data.classes = {} 	data.template...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local libUtil = require(&amp;#039;libraryUtil&amp;#039;)&lt;br /&gt;
local checkType = libUtil.checkType&lt;br /&gt;
local mTableTools = require(&amp;#039;Módulo:TableTools&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local listTypes = {&lt;br /&gt;
	[&amp;#039;bulleted&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;unbulleted&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;horizontal&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;ordered&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;horizontal_ordered&amp;#039;] = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p.makeListData(listType, args)&lt;br /&gt;
	-- Constrói uma tabela de dados para ser passada para p.renderList.&lt;br /&gt;
	local data = {}&lt;br /&gt;
&lt;br /&gt;
	-- Classes e TemplateStyles&lt;br /&gt;
	data.classes = {}&lt;br /&gt;
	data.templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
	if listType == &amp;#039;horizontal&amp;#039; or listType == &amp;#039;horizontal_ordered&amp;#039; then&lt;br /&gt;
		table.insert(data.classes, &amp;#039;hlist&amp;#039;)&lt;br /&gt;
		data.templatestyles = mw.getCurrentFrame():extensionTag{&lt;br /&gt;
			name = &amp;#039;templatestyles&amp;#039;, args = { src = &amp;#039;Hlist/styles.css&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	elseif listType == &amp;#039;unbulleted&amp;#039; then&lt;br /&gt;
		table.insert(data.classes, &amp;#039;plainlist&amp;#039;)&lt;br /&gt;
		data.templatestyles = mw.getCurrentFrame():extensionTag{&lt;br /&gt;
			name = &amp;#039;templatestyles&amp;#039;, args = { src = &amp;#039;Lista simples/styles.css&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	local argsClass = args.class or args.classe&lt;br /&gt;
	table.insert(data.classes, argsClass)&lt;br /&gt;
&lt;br /&gt;
	-- Estilo div principal&lt;br /&gt;
	data.style = args.style or args.estilo&lt;br /&gt;
&lt;br /&gt;
	-- Indentação para listas horizontais&lt;br /&gt;
	if listType == &amp;#039;horizontal&amp;#039; or listType == &amp;#039;horizontal_ordered&amp;#039; then&lt;br /&gt;
		local indent &lt;br /&gt;
		if args.indent then&lt;br /&gt;
			indent = tonumber(args.indent)&lt;br /&gt;
		else&lt;br /&gt;
			indent = tonumber(args.indentar)&lt;br /&gt;
		end&lt;br /&gt;
		indent = indent and indent * 1.6 or 0&lt;br /&gt;
		if indent &amp;gt; 0 then&lt;br /&gt;
			data.marginLeft = indent .. &amp;#039;em&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Tipos de estilo de lista para listas ordenadas.&lt;br /&gt;
	-- Isto pode ser &amp;quot;1, 2, 3&amp;quot;, &amp;quot;a, b, c&amp;quot; ou vários outros. O tipo de estilo de &lt;br /&gt;
	-- lista é definido pelo atributo &amp;quot;type&amp;quot; ou pela propriedade de CSS&lt;br /&gt;
	-- &amp;quot;list-style-type&amp;quot;.&lt;br /&gt;
	if listType == &amp;#039;ordered&amp;#039; or listType == &amp;#039;horizontal_ordered&amp;#039; then &lt;br /&gt;
		data.listStyleType = args.list_style_type or args[&amp;#039;list-style-type&amp;#039;] or args.lista_estilo_tipo or args[&amp;#039;lista-estilo-tipo&amp;#039;]&lt;br /&gt;
		data.type = args[&amp;#039;type&amp;#039;] or args[&amp;#039;tipo&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
		-- Detecta atributos de tipo inválidos e tenta convertê-los em&lt;br /&gt;
		-- propriedades de CSS de list-style-type.&lt;br /&gt;
		if data.type &lt;br /&gt;
			and not data.listStyleType&lt;br /&gt;
			and not tostring(data.type):find(&amp;#039;^%s*[1AaIi]%s*$&amp;#039;)&lt;br /&gt;
		then&lt;br /&gt;
			data.listStyleType = data.type&lt;br /&gt;
			data.type = nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Tipo de tag de lista&lt;br /&gt;
	if listType == &amp;#039;ordered&amp;#039; or listType == &amp;#039;horizontal_ordered&amp;#039; then&lt;br /&gt;
		data.listTag = &amp;#039;ol&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		data.listTag = &amp;#039;ul&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Número inicial para listas ordenadas&lt;br /&gt;
	data.start = args.start or args[&amp;#039;início&amp;#039;]&lt;br /&gt;
	if listType == &amp;#039;horizontal_ordered&amp;#039; then&lt;br /&gt;
		-- Aplica correção para fazer com que os números iniciais funcionem com&lt;br /&gt;
		-- listas ordenadas horizontais.&lt;br /&gt;
		local startNum = tonumber(data.start)&lt;br /&gt;
		if startNum then&lt;br /&gt;
			data.counterReset = &amp;#039;listitem &amp;#039; .. tostring(startNum - 1)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Estilo de lista &lt;br /&gt;
	 -- ul_style e ol_style estão incluídos para compatibilidade com versões &lt;br /&gt;
	 -- anteriores. Nenhuma distinção é feita para listas que são ordenadas ou &lt;br /&gt;
	 -- que não são ordenadas.&lt;br /&gt;
	data.listStyle = args.list_style or args.lista_estilo&lt;br /&gt;
&lt;br /&gt;
	-- Lista de itens&lt;br /&gt;
	-- li_style está incluído para compatibilidade com versões anteriores.&lt;br /&gt;
	-- item_style foi incluído para ser mais fácil de entender para os que não&lt;br /&gt;
	-- são programadores.&lt;br /&gt;
	data.itemStyle = args.item_style or args.li_style or args.item_estilo or args.li_estilo&lt;br /&gt;
	data.items = {}&lt;br /&gt;
	for _, num in ipairs(mTableTools.numKeys(args)) do&lt;br /&gt;
		local item = {}&lt;br /&gt;
		item.content = args[num]&lt;br /&gt;
		item.style = args[&amp;#039;item&amp;#039; .. tostring(num) .. &amp;#039;_style&amp;#039;]&lt;br /&gt;
			or args[&amp;#039;item_style&amp;#039; .. tostring(num)] or args[&amp;#039;item&amp;#039; .. tostring(num) .. &amp;#039;_estilo&amp;#039;]&lt;br /&gt;
			or args[&amp;#039;item_estilo&amp;#039; .. tostring(num)]&lt;br /&gt;
		item.value = args[&amp;#039;item&amp;#039; .. tostring(num) .. &amp;#039;_value&amp;#039;]&lt;br /&gt;
			or args[&amp;#039;item_value&amp;#039; .. tostring(num)] or args[&amp;#039;item&amp;#039; .. tostring(num) .. &amp;#039;_valor&amp;#039;]&lt;br /&gt;
			or args[&amp;#039;item_valor&amp;#039; .. tostring(num)]&lt;br /&gt;
		table.insert(data.items, item)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderList(data)&lt;br /&gt;
	-- Renderiza a lista em HTML.&lt;br /&gt;
	&lt;br /&gt;
	-- Retorna a sequência (string) em branco se não houver itens na lista.&lt;br /&gt;
	if type(data.items) ~= &amp;#039;table&amp;#039; or #data.items &amp;lt; 1 then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Renderiza a tag div principal.&lt;br /&gt;
	local root = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
	for _, class in ipairs(data.classes or {}) do&lt;br /&gt;
		root:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	root:css{[&amp;#039;margin-left&amp;#039;] = data.marginLeft}&lt;br /&gt;
	if data.style then&lt;br /&gt;
		root:cssText(data.style)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Renderiza a tag da lista.&lt;br /&gt;
	local list = root:tag(data.listTag or &amp;#039;ul&amp;#039;)&lt;br /&gt;
	list&lt;br /&gt;
		:attr{start = data.start, type = data.type}&lt;br /&gt;
		:css{&lt;br /&gt;
			[&amp;#039;counter-reset&amp;#039;] = data.counterReset,&lt;br /&gt;
			[&amp;#039;list-style-type&amp;#039;] = data.listStyleType&lt;br /&gt;
		}&lt;br /&gt;
	if data.listStyle then&lt;br /&gt;
		list:cssText(data.listStyle)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Renderiza os itens da lista&lt;br /&gt;
	for _, t in ipairs(data.items or {}) do&lt;br /&gt;
		local item = list:tag(&amp;#039;li&amp;#039;)&lt;br /&gt;
		if data.itemStyle then&lt;br /&gt;
			item:cssText(data.itemStyle)&lt;br /&gt;
		end&lt;br /&gt;
		if t.style then&lt;br /&gt;
			item:cssText(t.style)&lt;br /&gt;
		end&lt;br /&gt;
		item&lt;br /&gt;
			:attr{value = t.value}&lt;br /&gt;
			:wikitext(t.content)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return data.templatestyles .. tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderTrackingCategories(args)&lt;br /&gt;
	local isDeprecated = false -- Rastreia parâmetros obsoletos.&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		k = tostring(k)&lt;br /&gt;
		if k:find(&amp;#039;^item_style%d+$&amp;#039;) or k:find(&amp;#039;^item_value%d+$&amp;#039;) then&lt;br /&gt;
			isDeprecated = true&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local ret = &amp;#039;&amp;#039;&lt;br /&gt;
	if isDeprecated then&lt;br /&gt;
		ret = ret .. &amp;#039;[[Categoria:!Predefinições de lista com parâmetros obsoletos]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeList(listType, args)&lt;br /&gt;
	if not listType or not listTypes[listType] then&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&amp;quot;argumento #1 inválido para &amp;#039;makeList&amp;#039; (&amp;#039;%s&amp;#039; não é um tipo de lista válido)&amp;quot;,&lt;br /&gt;
			tostring(listType)&lt;br /&gt;
		), 2)&lt;br /&gt;
	end&lt;br /&gt;
	checkType(&amp;#039;makeList&amp;#039;, 2, args, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local data = p.makeListData(listType, args)&lt;br /&gt;
	local list = p.renderList(data)&lt;br /&gt;
	local trackingCategories = p.renderTrackingCategories(args)&lt;br /&gt;
	return list .. trackingCategories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for listType in pairs(listTypes) do&lt;br /&gt;
	p[listType] = function (frame)&lt;br /&gt;
		local mArguments = require(&amp;#039;Módulo:Arguments&amp;#039;)&lt;br /&gt;
		local origArgs = mArguments.getArgs(frame, {&lt;br /&gt;
			valueFunc = function (key, value)&lt;br /&gt;
			if not value or not mw.ustring.find(value, &amp;#039;%S&amp;#039;) then return nil end&lt;br /&gt;
			if mw.ustring.find(value, &amp;#039;^%s*[%*#;:]&amp;#039;) then&lt;br /&gt;
				return value&lt;br /&gt;
			else&lt;br /&gt;
				return value:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		})&lt;br /&gt;
		-- Copia todos os argumentos para uma nova tabela, para uma indexação &lt;br /&gt;
		-- mais rápida.&lt;br /&gt;
		local args = {}&lt;br /&gt;
		for k, v in pairs(origArgs) do&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
		return p.makeList(listType, args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Itaymbere</name></author>
	</entry>
</feed>