<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.tokusatsus.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ASidebar</id>
	<title>Módulo:Sidebar - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tokusatsus.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ASidebar"/>
	<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Sidebar&amp;action=history"/>
	<updated>2026-07-05T10:54:17Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Sidebar&amp;diff=2515&amp;oldid=prev</id>
		<title>Tavoraadmin: Importando predefinição/módulo da Wikipédia em português para manter layout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Sidebar&amp;diff=2515&amp;oldid=prev"/>
		<updated>2026-07-05T05:23:18Z</updated>

		<summary type="html">&lt;p&gt;Importando predefinição/módulo da Wikipédia em português para manter layout&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
local cfg = mw.loadData(&amp;#039;Módulo:Sidebar/configuração&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Módulo:Arguments&amp;#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Categoriza predefinições e módulos de chamada com um parâmetro &amp;#039;style&amp;#039; de qualquer tipo&lt;br /&gt;
para rastreamento para conversão em TemplateStyles.&lt;br /&gt;
&lt;br /&gt;
TODO após uma longa limpeza: captura barras laterais em outros espaços nomeados além de Predefinição e Módulo.&lt;br /&gt;
TODO provavelmente desejaria remover /log e /archive como o CS1 faz&lt;br /&gt;
]]&lt;br /&gt;
local function categorizeTemplatesWithInlineStyles(args)&lt;br /&gt;
    local title = mw.title.getCurrentTitle()&lt;br /&gt;
    if title.namespace ~= 10 and title.namespace ~= 828 then return &amp;#039;&amp;#039; end&lt;br /&gt;
    for _, pattern in ipairs (cfg.i18n.pattern.uncategorized_conversion_titles) do&lt;br /&gt;
        if title.text:match(pattern) then return &amp;#039;&amp;#039; end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for key, _ in pairs(args) do&lt;br /&gt;
        if string.find(key, cfg.i18n.pattern.style_conversion) or key == &amp;#039;width&amp;#039; then&lt;br /&gt;
            return cfg.i18n.category.conversion&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Para compatibilidade com a implementação original d {{Sidebar with collapsible lists}}, que passou alguns parâmetros por meio de {{#if}} para aparar seus&lt;br /&gt;
espaços em branco. Isso também acionou o comportamento de nova linha automática.&lt;br /&gt;
]]&lt;br /&gt;
-- Ver ([[meta:Help:Newlines and spaces#Automatic newline]])&lt;br /&gt;
local function trimAndAddAutomaticNewline(s)&lt;br /&gt;
    s = string.gsub(s, &amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
    if string.find(s, &amp;#039;^[#*:;]&amp;#039;) or string.find(s, &amp;#039;^{|&amp;#039;) then&lt;br /&gt;
        return &amp;#039;\n&amp;#039; .. s&lt;br /&gt;
    else&lt;br /&gt;
        return s&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Verifica se uma barra lateral tem uma barra lateral de subgrupo.&lt;br /&gt;
]]&lt;br /&gt;
local function hasSubgroup(s)&lt;br /&gt;
    if string.find(s, cfg.i18n.pattern.subgroup) then&lt;br /&gt;
        return true&lt;br /&gt;
    else&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function has_navbar(navbar_mode, sidebar_name)&lt;br /&gt;
    return navbar_mode ~= cfg.i18n.navbar_none and&lt;br /&gt;
        navbar_mode ~= cfg.i18n.navbar_off and&lt;br /&gt;
        (&lt;br /&gt;
            sidebar_name or&lt;br /&gt;
            mw.getCurrentFrame():getParent():getTitle():gsub(cfg.i18n.pattern.sandbox, &amp;#039;&amp;#039;) ~=&lt;br /&gt;
            cfg.i18n.title_not_to_add_navbar&lt;br /&gt;
        )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function has_list_class(args, htmlclass)&lt;br /&gt;
    local patterns = {&lt;br /&gt;
        &amp;#039;^&amp;#039; .. htmlclass .. &amp;#039;$&amp;#039;,&lt;br /&gt;
        &amp;#039;%s&amp;#039; .. htmlclass .. &amp;#039;$&amp;#039;,&lt;br /&gt;
        &amp;#039;^&amp;#039; .. htmlclass .. &amp;#039;%s&amp;#039;,&lt;br /&gt;
        &amp;#039;%s&amp;#039; .. htmlclass .. &amp;#039;%s&amp;#039;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for arg, value in pairs(args) do&lt;br /&gt;
        if type(arg) == &amp;#039;string&amp;#039; and string.find(arg, &amp;#039;class&amp;#039;) then&lt;br /&gt;
            for _, pattern in ipairs(patterns) do&lt;br /&gt;
                if string.find(args[arg] or &amp;#039;&amp;#039;, pattern) then&lt;br /&gt;
                    return true&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Existem muitas classes de locais disponíveis, então adicionamos seus TemplateStyles&lt;br /&gt;
local function add_list_styles(args)&lt;br /&gt;
    local frame = mw.getCurrentFrame()&lt;br /&gt;
    local function add_list_templatestyles(htmlclass, templatestyles)&lt;br /&gt;
        if has_list_class(args, htmlclass) then&lt;br /&gt;
            return frame:extensionTag{&lt;br /&gt;
                name = &amp;#039;templatestyles&amp;#039;, args = { src = templatestyles }&lt;br /&gt;
            }&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;#039;&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local plainlist_styles = add_list_templatestyles(&amp;#039;plainlist&amp;#039;, cfg.i18n.plainlist_templatestyles)&lt;br /&gt;
    local hlist_styles = add_list_templatestyles(&amp;#039;hlist&amp;#039;, cfg.i18n.hlist_templatestyles)&lt;br /&gt;
&lt;br /&gt;
    -- uma segunda solução alternativa para [[phab:T303378]]&lt;br /&gt;
    -- quando esse problema for corrigido, podemos realmente usar has_navbar para não emitir a&lt;br /&gt;
    -- tag aqui se quisermos&lt;br /&gt;
    if has_navbar(args.navbar, (args.name or args.nome)) and hlist_styles == &amp;#039;&amp;#039; then&lt;br /&gt;
        hlist_styles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = cfg.i18n.hlist_templatestyles}&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- hlist -&amp;gt; plainlist é o melhor esforço para preservar a antiga ordenação Common.css. [hlist_note]&lt;br /&gt;
    return hlist_styles .. plainlist_styles&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- solução alternativa [[phab:T303378]]&lt;br /&gt;
-- para cada argumento: encontra todos os marcadores de tira de templatestyles, insere-os em uma&lt;br /&gt;
-- tabela. então remove todos os marcadores de templatestyles do argumento&lt;br /&gt;
local function move_hiding_templatestyles(args)&lt;br /&gt;
    local gmatch = string.gmatch&lt;br /&gt;
    local gsub = string.gsub&lt;br /&gt;
    local templatestyles_markers = {}&lt;br /&gt;
    local strip_marker_pattern = &amp;#039;(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)&amp;#039;&lt;br /&gt;
    for k, arg in pairs(args) do&lt;br /&gt;
        for marker in gmatch(arg, strip_marker_pattern) do&lt;br /&gt;
            table.insert(templatestyles_markers, marker)&lt;br /&gt;
        end&lt;br /&gt;
        args[k] = gsub(arg, strip_marker_pattern, &amp;#039;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    return templatestyles_markers&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Função principal da barra lateral. Pega frame, args e uma collapsibleClass opcional.&lt;br /&gt;
A collapsibleClass é e deve ser usada apenas para barras laterais com listas&lt;br /&gt;
collapsíveis, como em p.collapsible.&lt;br /&gt;
]]&lt;br /&gt;
function p.sidebar(frame, args, collapsibleClass)&lt;br /&gt;
    if not args then args = getArgs(frame) end&lt;br /&gt;
    local hiding_templatestyles = table.concat(move_hiding_templatestyles(args))&lt;br /&gt;
    local root = mw.html.create()&lt;br /&gt;
    local child = (args.child or args.filha) and mw.text.trim(args.child or args.filha) == cfg.i18n.child_yes&lt;br /&gt;
&lt;br /&gt;
    root = root:tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
    if not child then&lt;br /&gt;
        root &lt;br /&gt;
            :addClass(cfg.i18n.class.sidebar)&lt;br /&gt;
            -- força collapsibleclass a ser sidebar-collapse, caso contrário, não produzirá nada&lt;br /&gt;
            :addClass(collapsibleClass == cfg.i18n.class.collapse and cfg.i18n.class.collapse or nil)&lt;br /&gt;
            :addClass(&amp;#039;nomobile&amp;#039;)&lt;br /&gt;
            :addClass((args.float or args[&amp;#039;flutuar&amp;#039;] or args[&amp;#039;lado&amp;#039;]) == cfg.i18n.float_none and cfg.i18n.class.float_none or nil)&lt;br /&gt;
            :addClass((args.float or args[&amp;#039;flutuar&amp;#039;] or args[&amp;#039;lado&amp;#039;]) == cfg.i18n.float_left and cfg.i18n.class.float_left or nil)&lt;br /&gt;
            :addClass(args.wraplinks ~= cfg.i18n.wrap_true and cfg.i18n.class.wraplinks or nil)&lt;br /&gt;
            -- A linha antiga do bodyclass foi removida daqui&lt;br /&gt;
            :css(&amp;#039;width&amp;#039;, args.width or args.largura or nil)&lt;br /&gt;
            :cssText(args.bodystyle or args[&amp;#039;estilo-corpo&amp;#039;] or args.style or args.estilo)&lt;br /&gt;
&lt;br /&gt;
        -- TRATAMENTO DA STRING VAZIA PARA O CORPO PRINCIPAL:&lt;br /&gt;
        local bodyclass = args.bodyclass or args[&amp;#039;classe-corpo&amp;#039;] or args.class or args.classe&lt;br /&gt;
        if bodyclass and bodyclass ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            root:addClass(bodyclass)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if (args.outertitle or args[&amp;#039;título-externo&amp;#039;] or args[&amp;#039;título-exterior&amp;#039;] or args[&amp;#039;cabeçalho&amp;#039;]) then&lt;br /&gt;
            root&lt;br /&gt;
                :tag(&amp;#039;caption&amp;#039;)&lt;br /&gt;
                    :addClass(cfg.i18n.class.outer_title)&lt;br /&gt;
                    :addClass(args.outertitleclass or args[&amp;#039;classe-título-externo&amp;#039;] or args[&amp;#039;classe-título-exterior&amp;#039;] or args[&amp;#039;classe-cabeçalho&amp;#039;])&lt;br /&gt;
                    :cssText(args.outertitlestyle or args[&amp;#039;estilo-título-externo&amp;#039;] or args[&amp;#039;estilo-título-exterior&amp;#039;] or args[&amp;#039;estilo-cabeçalho&amp;#039;])&lt;br /&gt;
                    :wikitext(args.outertitle or args[&amp;#039;título-externo&amp;#039;] or args[&amp;#039;título-exterior&amp;#039;] or args[&amp;#039;cabeçalho&amp;#039;])&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if (args.topimage or args[&amp;#039;imagem-topo&amp;#039;] or args[&amp;#039;imagem2&amp;#039;]) then&lt;br /&gt;
            local imageCell = root:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
            imageCell&lt;br /&gt;
                :addClass(cfg.i18n.class.top_image)&lt;br /&gt;
                :addClass(args.topimageclass or args[&amp;#039;classe-imagem-topo&amp;#039;] or args[&amp;#039;classe-imagem2&amp;#039;])&lt;br /&gt;
                :cssText(args.topimagestyle or args[&amp;#039;estilo-imagem-topo&amp;#039;] or args[&amp;#039;estilo-imagem2&amp;#039;])&lt;br /&gt;
                :wikitext(args.topimage or args[&amp;#039;imagem-topo&amp;#039;] or args[&amp;#039;imagem2&amp;#039;])&lt;br /&gt;
&lt;br /&gt;
            if (args.topcaption or args[&amp;#039;legenda-topo&amp;#039;] or args[&amp;#039;imagem_legenda2&amp;#039;]) then&lt;br /&gt;
                imageCell&lt;br /&gt;
                    :tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                        :addClass(cfg.i18n.class.top_caption)&lt;br /&gt;
                        :cssText(args.topcaptionstyle or args[&amp;#039;estilo-legenda-topo&amp;#039;] or args[&amp;#039;estilo-imagem_legenda2&amp;#039;])&lt;br /&gt;
                        :wikitext(args.topcaption or args[&amp;#039;legenda-topo&amp;#039;] or args[&amp;#039;imagem_legenda2&amp;#039;])&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if (args.pretitle or args[&amp;#039;pré-título&amp;#039;]) then&lt;br /&gt;
            root&lt;br /&gt;
                :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                    :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                        :addClass(args.topimage and cfg.i18n.class.pretitle_with_top_image&lt;br /&gt;
                            or cfg.i18n.class.pretitle)&lt;br /&gt;
                        :addClass(args.pretitleclass or args[&amp;#039;classe-pré-título&amp;#039;])&lt;br /&gt;
                        :cssText(args.basestyle or args[&amp;#039;estilo-base&amp;#039;])&lt;br /&gt;
                        :cssText(args.pretitlestyle or args[&amp;#039;estilo-pré-título&amp;#039;])&lt;br /&gt;
                        :wikitext(args.pretitle or args[&amp;#039;pré-título&amp;#039;])&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        root&lt;br /&gt;
            :addClass(cfg.i18n.class.subgroup)&lt;br /&gt;
            :cssText(args.bodystyle or args[&amp;#039;estilo-corpo&amp;#039;] or args.style or args.estilo)&lt;br /&gt;
&lt;br /&gt;
        -- TRATAMENTO DA STRING VAZIA PARA O SUBGRUPO:&lt;br /&gt;
        local subclass = args.bodyclass or args[&amp;#039;classe-corpo&amp;#039;] or args.class or args.classe&lt;br /&gt;
        if subclass and subclass ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            root:addClass(subclass)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if (args.title or args[&amp;#039;título&amp;#039;]) then&lt;br /&gt;
        if child then&lt;br /&gt;
            root&lt;br /&gt;
                :wikitext(args.title or args[&amp;#039;título&amp;#039;])&lt;br /&gt;
        else&lt;br /&gt;
            root&lt;br /&gt;
                :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                    :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                        :addClass((args.pretitle or args[&amp;#039;pré-título&amp;#039;]) and cfg.i18n.class.title_with_pretitle&lt;br /&gt;
                            or cfg.i18n.class.title)&lt;br /&gt;
                        :addClass(args.titleclass or args[&amp;#039;classe-título&amp;#039;])&lt;br /&gt;
                        :css(&amp;#039;font-size&amp;#039;, &amp;#039;1.5em&amp;#039;) -- *&lt;br /&gt;
                        :cssText(args.basestyle or args[&amp;#039;estilo-base&amp;#039;])&lt;br /&gt;
                        :cssText(args.titlestyle or args[&amp;#039;estilo-título&amp;#039;])&lt;br /&gt;
                        :wikitext(args.title or args[&amp;#039;título&amp;#039;])&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if (args.image or args.imagem) then&lt;br /&gt;
        local imageCell = root:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
        imageCell&lt;br /&gt;
            :addClass(cfg.i18n.class.image)&lt;br /&gt;
            :addClass(args.imageclass or args[&amp;#039;classe-imagem&amp;#039;])&lt;br /&gt;
            :cssText(args.imagestyle or args[&amp;#039;estilo-imagem&amp;#039;])&lt;br /&gt;
            :wikitext(args.image or args.imagem)&lt;br /&gt;
&lt;br /&gt;
        if (args.caption or args.legenda or args[&amp;#039;imagem_legenda&amp;#039;]) then&lt;br /&gt;
            imageCell&lt;br /&gt;
                :tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    :addClass(cfg.i18n.class.caption)&lt;br /&gt;
                    :cssText(args.captionstyle or args[&amp;#039;estilo-legenda&amp;#039;] or args[&amp;#039;estilo-imagem_legenda&amp;#039;])&lt;br /&gt;
                    :wikitext(args.caption or args.legenda or args[&amp;#039;imagem_legenda&amp;#039;])&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if (args.above or args.acima) then&lt;br /&gt;
        root&lt;br /&gt;
            :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                    :addClass(cfg.i18n.class.above)&lt;br /&gt;
                    :addClass(args.aboveclass or args[&amp;#039;classe-acima&amp;#039;])&lt;br /&gt;
                    :cssText(args.abovestyle or args[&amp;#039;estilo-acima&amp;#039;])&lt;br /&gt;
                    :newline() -- nova linha necessária para que os marcadores funcionem&lt;br /&gt;
                    :wikitext(args.above or args.acima)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local rowNums = {}&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        k = &amp;#039;&amp;#039; .. k&lt;br /&gt;
        local num = k:match(&amp;#039;^heading(%d+)$&amp;#039;) or k:match(&amp;#039;^rótulo(%d+)$&amp;#039;) or k:match(&amp;#039;^content(%d+)$&amp;#039;) or k:match(&amp;#039;^conteúdo(%d+)$&amp;#039;) or k:match(&amp;#039;^dados(%d+)$&amp;#039;)&lt;br /&gt;
        if num then table.insert(rowNums, tonumber(num)) end&lt;br /&gt;
    end&lt;br /&gt;
    table.sort(rowNums)&lt;br /&gt;
    -- remove duplicatas da lista (por exemplo, 3 será duplicado se ambos heading3&lt;br /&gt;
    -- e content3 forem especificados)&lt;br /&gt;
    for i = #rowNums, 1, -1 do&lt;br /&gt;
        if rowNums[i] == rowNums[i - 1] then&lt;br /&gt;
            table.remove(rowNums, i)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for i, num in ipairs(rowNums) do&lt;br /&gt;
        local heading = args[&amp;#039;heading&amp;#039; .. num] or args[&amp;#039;rótulo&amp;#039; .. num]&lt;br /&gt;
        if heading then&lt;br /&gt;
            root&lt;br /&gt;
                :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                    :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                        :addClass(cfg.i18n.class.heading)&lt;br /&gt;
                        :addClass(args.headingclass or args[&amp;#039;classe-rótulo&amp;#039;])&lt;br /&gt;
                        :addClass(args[&amp;#039;heading&amp;#039; .. num .. &amp;#039;class&amp;#039;] or args[&amp;#039;classe-rótulo&amp;#039; .. num])&lt;br /&gt;
                        :cssText(args.basestyle or args[&amp;#039;estilo-base&amp;#039;])&lt;br /&gt;
                        :cssText(args.headingstyle or args[&amp;#039;estilo-rótulo&amp;#039;])&lt;br /&gt;
                        :cssText(args[&amp;#039;heading&amp;#039; .. num .. &amp;#039;style&amp;#039;] or args[&amp;#039;estilo-rótulo&amp;#039; .. num])&lt;br /&gt;
                        :newline()&lt;br /&gt;
                        :wikitext(heading)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        local content = args[&amp;#039;content&amp;#039; .. num] or args[&amp;#039;conteúdo&amp;#039; .. num] or args[&amp;#039;dados&amp;#039; .. num]&lt;br /&gt;
        if content then&lt;br /&gt;
            root&lt;br /&gt;
                :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                    :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                        :addClass(hasSubgroup(content) and cfg.i18n.class.content_with_subgroup&lt;br /&gt;
                            or cfg.i18n.class.content)&lt;br /&gt;
                        :addClass(args.contentclass or args[&amp;#039;classe-conteúdo&amp;#039;] or args[&amp;#039;classe-dados&amp;#039;])&lt;br /&gt;
                        :addClass(args[&amp;#039;content&amp;#039; .. num .. &amp;#039;class&amp;#039;] or args[&amp;#039;classe-conteúdo&amp;#039; .. num] or args[&amp;#039;classe-dados&amp;#039; .. num])&lt;br /&gt;
                        :cssText(args.contentstyle or args[&amp;#039;estilo-conteúdo&amp;#039;] or args[&amp;#039;estilo-dados&amp;#039;])&lt;br /&gt;
                        :cssText(args[&amp;#039;content&amp;#039; .. num .. &amp;#039;style&amp;#039;] or args[&amp;#039;estilo-conteúdo&amp;#039; .. num] or args[&amp;#039;estilo-dados&amp;#039; .. num])&lt;br /&gt;
                        :newline()&lt;br /&gt;
                        :wikitext(content)&lt;br /&gt;
                        :done()&lt;br /&gt;
                        -- Sem uma quebra de linha após &amp;lt;/td&amp;gt;, uma lista aninhada como&lt;br /&gt;
                        -- &amp;quot;* {{hlist| ...}}&amp;quot; não é analisada corretamente.&lt;br /&gt;
                    :newline()&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if (args.below or args[&amp;#039;rodapé&amp;#039;]) then&lt;br /&gt;
        root&lt;br /&gt;
            :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                    :addClass(cfg.i18n.class.below)&lt;br /&gt;
                    :addClass(args.belowclass or args[&amp;#039;classe-rodapé&amp;#039;])&lt;br /&gt;
                    :cssText(args.belowstyle or args[&amp;#039;estilo-rodapé&amp;#039;])&lt;br /&gt;
                    :newline()&lt;br /&gt;
                    :wikitext(args.below or args[&amp;#039;rodapé&amp;#039;])&lt;br /&gt;
    end&lt;br /&gt;
    if not child and has_navbar(args.navbar, (args.name or args.nome)) then&lt;br /&gt;
        root&lt;br /&gt;
            :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                    :addClass(cfg.i18n.class.navbar)&lt;br /&gt;
                    :cssText(args.navbarstyle or args[&amp;#039;estilo-navbar&amp;#039;])&lt;br /&gt;
                    :wikitext(require(&amp;#039;Módulo:Navbar&amp;#039;)._navbar{&lt;br /&gt;
                        (args.name or args.nome),&lt;br /&gt;
                        mini = 1,&lt;br /&gt;
                        fontstyle = args.navbarfontstyle or args[&amp;#039;estilo-fonte-navbar&amp;#039;]&lt;br /&gt;
                    })&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local base_templatestyles = frame:extensionTag{&lt;br /&gt;
        name = &amp;#039;templatestyles&amp;#039;, args = { src = cfg.i18n.templatestyles }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    local templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
    if args[&amp;#039;templatestyles&amp;#039;] and args[&amp;#039;templatestyles&amp;#039;] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        templatestyles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = args[&amp;#039;templatestyles&amp;#039;] }&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local child_templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
    if args[&amp;#039;child templatestyles&amp;#039;] and args[&amp;#039;child templatestyles&amp;#039;] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        child_templatestyles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = args[&amp;#039;child templatestyles&amp;#039;] }&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local grandchild_templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
    if args[&amp;#039;grandchild templatestyles&amp;#039;] and args[&amp;#039;grandchild templatestyles&amp;#039;] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        grandchild_templatestyles = frame:extensionTag{&lt;br /&gt;
            name = &amp;#039;templatestyles&amp;#039;, args = { src = args[&amp;#039;grandchild templatestyles&amp;#039;] }&lt;br /&gt;
        }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return table.concat({&lt;br /&gt;
        add_list_styles(args), -- ver [hlist_note] acima sobre a ordenação &lt;br /&gt;
        base_templatestyles,&lt;br /&gt;
        templatestyles,&lt;br /&gt;
        child_templatestyles,&lt;br /&gt;
        grandchild_templatestyles,&lt;br /&gt;
        hiding_templatestyles,&lt;br /&gt;
        tostring(root),&lt;br /&gt;
        (child and cfg.i18n.category.child or &amp;#039;&amp;#039;),&lt;br /&gt;
        categorizeTemplatesWithInlineStyles(args)&lt;br /&gt;
    })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function list_title(args, is_centered_list_titles, num)&lt;br /&gt;
    local title_text = trimAndAddAutomaticNewline(args[&amp;#039;list&amp;#039; .. num .. &amp;#039;title&amp;#039;] or args[&amp;#039;título-lista&amp;#039; .. num]&lt;br /&gt;
        or cfg.i18n.default_list_title)&lt;br /&gt;
&lt;br /&gt;
    local title&lt;br /&gt;
    if is_centered_list_titles then&lt;br /&gt;
        -- recolhível pode ser complicado, então fornece alguma CSS/HTML para dar suporte&lt;br /&gt;
        title = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
            :addClass(cfg.i18n.class.list_title_centered)&lt;br /&gt;
            :wikitext(title_text)&lt;br /&gt;
    else&lt;br /&gt;
        title = mw.html.create()&lt;br /&gt;
            :wikitext(title_text)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local title_container = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
        :addClass(cfg.i18n.class.list_title)&lt;br /&gt;
        -- não /precisa/ de uma listnumtitleclass porque você pode fazer&lt;br /&gt;
        -- .templateclass .listnumclass .sidebar-list-title&lt;br /&gt;
        :addClass(args.listtitleclass or args[&amp;#039;classe-título-lista&amp;#039;])&lt;br /&gt;
        :cssText(args.basestyle or args[&amp;#039;estilo-base&amp;#039;])&lt;br /&gt;
        :cssText(args.listtitlestyle or args[&amp;#039;estilo-título-lista&amp;#039;])&lt;br /&gt;
        -- :cssText(&amp;#039;color: var(--color-base)&amp;#039;) --LINHA REMOVIDA DAQUI PARA EVITAR TEXTO INVISÍVEL NO MODO ESCURO&lt;br /&gt;
        :cssText(args[&amp;#039;list&amp;#039; .. num .. &amp;#039;titlestyle&amp;#039;] or args[&amp;#039;estilo-título-lista&amp;#039; .. num])&lt;br /&gt;
        :node(title)&lt;br /&gt;
        :done()&lt;br /&gt;
&lt;br /&gt;
    return title_container&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Ponto de entrada principal para barra lateral com listas recolhíveis.&lt;br /&gt;
Faz o trabalho de criar as próprias listas recolhíveis e incluí-las&lt;br /&gt;
nos args.&lt;br /&gt;
]]&lt;br /&gt;
function p.collapsible(frame)&lt;br /&gt;
    local args = getArgs(frame)&lt;br /&gt;
    if not (args.name or args.nome) and&lt;br /&gt;
        frame:getParent():getTitle():gsub(cfg.i18n.pattern.collapse_sandbox, &amp;#039;&amp;#039;) ==&lt;br /&gt;
        cfg.i18n.collapse_title_not_to_add_navbar then&lt;br /&gt;
        args.navbar = cfg.i18n.navbar_none&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local contentArgs = {}&lt;br /&gt;
&lt;br /&gt;
    local is_centered_list_titles = false&lt;br /&gt;
    if args[&amp;#039;centered list titles&amp;#039;] and args[&amp;#039;centered list titles&amp;#039;] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        is_centered_list_titles = true&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        local num = string.match(k, &amp;#039;^list(%d+)$&amp;#039;) or string.match(k, &amp;#039;^lista(%d+)$&amp;#039;)&lt;br /&gt;
        if num then&lt;br /&gt;
            local expand = args.expanded and&lt;br /&gt;
                (args.expanded == &amp;#039;all&amp;#039; or args.expanded == &amp;#039;tudo&amp;#039;&lt;br /&gt;
                or args.expanded == &amp;#039;todo&amp;#039; or args.expanded == &amp;#039;toda&amp;#039;&lt;br /&gt;
                or args.expanded == &amp;#039;todos&amp;#039; or args.expanded == &amp;#039;todas&amp;#039;&lt;br /&gt;
                or args.expanded == (args[&amp;#039;list&amp;#039; .. num .. &amp;#039;name&amp;#039;] or args[&amp;#039;lista&amp;#039; .. num .. &amp;#039;nome&amp;#039;] or args[&amp;#039;lista&amp;#039; .. num .. &amp;#039;-nome&amp;#039;])) or args.expandir and&lt;br /&gt;
                (args.expandir == &amp;#039;all&amp;#039; or args.expandir == &amp;#039;tudo&amp;#039;&lt;br /&gt;
                or args.expandir == &amp;#039;todo&amp;#039; or args.expandir == &amp;#039;toda&amp;#039;&lt;br /&gt;
                or args.expandir == &amp;#039;todos&amp;#039; or args.expandir == &amp;#039;todas&amp;#039;&lt;br /&gt;
                or args.expandir == (args[&amp;#039;list&amp;#039; .. num .. &amp;#039;name&amp;#039;] or args[&amp;#039;lista&amp;#039; .. num .. &amp;#039;nome&amp;#039;] or args[&amp;#039;lista&amp;#039; .. num .. &amp;#039;-nome&amp;#039;])) or args.expandida and&lt;br /&gt;
                (args.expandida == &amp;#039;all&amp;#039; or args.expandida == &amp;#039;tudo&amp;#039;&lt;br /&gt;
                or args.expandida == &amp;#039;todo&amp;#039; or args.expandida == &amp;#039;toda&amp;#039;&lt;br /&gt;
                or args.expandida == &amp;#039;todos&amp;#039; or args.expandida == &amp;#039;todas&amp;#039;&lt;br /&gt;
                or args.expandida == (args[&amp;#039;list&amp;#039; .. num .. &amp;#039;name&amp;#039;] or args[&amp;#039;lista&amp;#039; .. num .. &amp;#039;nome&amp;#039;] or args[&amp;#039;lista&amp;#039; .. num .. &amp;#039;-nome&amp;#039;]))&lt;br /&gt;
            local row = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
            row&lt;br /&gt;
                :addClass(cfg.i18n.class.list)&lt;br /&gt;
                :addClass(&amp;#039;mw-collapsible&amp;#039;)&lt;br /&gt;
                :addClass((not expand) and &amp;#039;mw-collapsed&amp;#039; or nil)&lt;br /&gt;
                :addClass(args[&amp;#039;list&amp;#039; .. num .. &amp;#039;class&amp;#039;] or args[&amp;#039;classe-lista&amp;#039; .. num])&lt;br /&gt;
                :cssText(args.listframestyle or args[&amp;#039;estilo-quadro-lista&amp;#039;])&lt;br /&gt;
                :cssText(args[&amp;#039;list&amp;#039; .. num .. &amp;#039;framestyle&amp;#039;] or args[&amp;#039;estilo-quadro-lista&amp;#039; .. num])&lt;br /&gt;
                :node(list_title(args, is_centered_list_titles, num))&lt;br /&gt;
                :tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    :addClass(cfg.i18n.class.list_content)&lt;br /&gt;
                    :addClass(&amp;#039;mw-collapsible-content&amp;#039;)&lt;br /&gt;
                    :addClass(args.listclass or args[&amp;#039;classe-lista&amp;#039;])&lt;br /&gt;
                    :cssText(args.liststyle or args[&amp;#039;estilo-lista&amp;#039;])&lt;br /&gt;
                    :cssText(args[&amp;#039;list&amp;#039; .. num .. &amp;#039;style&amp;#039;] or args[&amp;#039;estilo-lista&amp;#039; .. num])&lt;br /&gt;
                    :wikitext(trimAndAddAutomaticNewline(args[&amp;#039;list&amp;#039; .. num] or args[&amp;#039;lista&amp;#039; .. num]))&lt;br /&gt;
&lt;br /&gt;
            &lt;br /&gt;
            contentArgs[&amp;#039;content&amp;#039; .. num] = tostring(row)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k, v in pairs(contentArgs) do&lt;br /&gt;
        args[k] = v&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return p.sidebar(frame, args, cfg.i18n.class.collapse)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Tavoraadmin</name></author>
	</entry>
</feed>