<?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%3ANavbar</id>
	<title>Módulo:Navbar - 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%3ANavbar"/>
	<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Navbar&amp;action=history"/>
	<updated>2026-07-05T09:32:52Z</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:Navbar&amp;diff=2441&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:Navbar&amp;diff=2441&amp;oldid=prev"/>
		<updated>2026-07-05T04:46:21Z</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;local p = {}&lt;br /&gt;
local cfg = mw.loadData(&amp;#039;Módulo:Navbar/configuração&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local function get_title_arg(is_collapsible, template)&lt;br /&gt;
    local title_arg = 1&lt;br /&gt;
    if is_collapsible then title_arg = 2 end&lt;br /&gt;
    if template then title_arg = &amp;#039;template&amp;#039; end&lt;br /&gt;
    return title_arg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function choose_links(template, args)&lt;br /&gt;
    -- O código aqui voltou a ser 100% igual ao inglês&lt;br /&gt;
    local show = {true, true, true, false, false, false}&lt;br /&gt;
    if template then&lt;br /&gt;
        show[2] = false&lt;br /&gt;
        show[3] = false&lt;br /&gt;
        local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6,&lt;br /&gt;
            talk = 2, edit = 3, hist = 4, move = 5, watch = 6}&lt;br /&gt;
        for _, v in ipairs(require (&amp;#039;Módulo:TableTools&amp;#039;).compressSparseArray(args)) do&lt;br /&gt;
            local num = index[v]&lt;br /&gt;
            if num then show[num] = true end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local remove_edit_link = args.noedit&lt;br /&gt;
    if remove_edit_link then show[3] = false end&lt;br /&gt;
    &lt;br /&gt;
    return show&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function add_link(link_description, ul, is_mini, font_style)&lt;br /&gt;
    local l&lt;br /&gt;
    if link_description.url then&lt;br /&gt;
        l = {&amp;#039;[&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;]&amp;#039;}&lt;br /&gt;
    else&lt;br /&gt;
        l = {&amp;#039;[[&amp;#039;, &amp;#039;|&amp;#039;, &amp;#039;]]&amp;#039;}&lt;br /&gt;
    end&lt;br /&gt;
    ul:tag(&amp;#039;li&amp;#039;)&lt;br /&gt;
        :addClass(&amp;#039;nv-&amp;#039; .. link_description.full)&lt;br /&gt;
        :wikitext(l[1] .. link_description.link .. l[2])&lt;br /&gt;
        :tag(is_mini and &amp;#039;abbr&amp;#039; or &amp;#039;span&amp;#039;)&lt;br /&gt;
            :attr(&amp;#039;title&amp;#039;, link_description.html_title)&lt;br /&gt;
            :cssText(font_style)&lt;br /&gt;
            :wikitext(is_mini and link_description.mini or link_description.full)&lt;br /&gt;
            :done()&lt;br /&gt;
        :wikitext(l[3])&lt;br /&gt;
        :done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style)&lt;br /&gt;
    local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace)&lt;br /&gt;
    if not title then&lt;br /&gt;
        error(cfg.invalid_title .. title_text)&lt;br /&gt;
    end&lt;br /&gt;
    local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or &amp;#039;&amp;#039;&lt;br /&gt;
    &lt;br /&gt;
    -- SAÍDAS TRADUZIDAS: O usuário vê em PT-BR, mas a estrutura usa as chaves originais&lt;br /&gt;
    local link_descriptions = {&lt;br /&gt;
        { [&amp;#039;mini&amp;#039;] = &amp;#039;v&amp;#039;, [&amp;#039;full&amp;#039;] = &amp;#039;ver&amp;#039;, [&amp;#039;html_title&amp;#039;] = &amp;#039;Ver esta predefinição&amp;#039;,&lt;br /&gt;
            [&amp;#039;link&amp;#039;] = title.fullText, [&amp;#039;url&amp;#039;] = false },&lt;br /&gt;
        { [&amp;#039;mini&amp;#039;] = &amp;#039;d&amp;#039;, [&amp;#039;full&amp;#039;] = &amp;#039;discutir&amp;#039;, [&amp;#039;html_title&amp;#039;] = &amp;#039;Discutir esta predefinição&amp;#039;,&lt;br /&gt;
            [&amp;#039;link&amp;#039;] = talkpage, [&amp;#039;url&amp;#039;] = false },&lt;br /&gt;
        { [&amp;#039;mini&amp;#039;] = &amp;#039;e&amp;#039;, [&amp;#039;full&amp;#039;] = &amp;#039;editar&amp;#039;, [&amp;#039;html_title&amp;#039;] = &amp;#039;Editar esta predefinição&amp;#039;,&lt;br /&gt;
            [&amp;#039;link&amp;#039;] = &amp;#039;Especial:EditPage/&amp;#039; .. title.fullText, [&amp;#039;url&amp;#039;] = false },&lt;br /&gt;
        { [&amp;#039;mini&amp;#039;] = &amp;#039;h&amp;#039;, [&amp;#039;full&amp;#039;] = &amp;#039;histórico&amp;#039;, [&amp;#039;html_title&amp;#039;] = &amp;#039;Histórico desta predefinição&amp;#039;,&lt;br /&gt;
            [&amp;#039;link&amp;#039;] = &amp;#039;Especial:PageHistory/&amp;#039; .. title.fullText, [&amp;#039;url&amp;#039;] = false },&lt;br /&gt;
        { [&amp;#039;mini&amp;#039;] = &amp;#039;m&amp;#039;, [&amp;#039;full&amp;#039;] = &amp;#039;mover&amp;#039;, [&amp;#039;html_title&amp;#039;] = &amp;#039;Mover esta predefinição&amp;#039;,&lt;br /&gt;
            [&amp;#039;link&amp;#039;] = mw.title.new(&amp;#039;Especial:Mover_página&amp;#039;):fullUrl(&amp;#039;target=&amp;#039;..title.fullText), [&amp;#039;url&amp;#039;] = true },&lt;br /&gt;
        { [&amp;#039;mini&amp;#039;] = &amp;#039;w&amp;#039;, [&amp;#039;full&amp;#039;] = &amp;#039;vigiar&amp;#039;, [&amp;#039;html_title&amp;#039;] = &amp;#039;Vigiar esta predefinição&amp;#039;, &lt;br /&gt;
            [&amp;#039;link&amp;#039;] = title:fullUrl(&amp;#039;action=watch&amp;#039;), [&amp;#039;url&amp;#039;] = true }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    local ul = mw.html.create(&amp;#039;ul&amp;#039;)&lt;br /&gt;
    if has_brackets then&lt;br /&gt;
        ul:addClass(cfg.classes.brackets)&lt;br /&gt;
            :cssText(font_style)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    for i, _ in ipairs(displayed_links) do&lt;br /&gt;
        if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end&lt;br /&gt;
    end&lt;br /&gt;
    return ul:done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._navbar(args)&lt;br /&gt;
    local font_style = args.fontstyle&lt;br /&gt;
    local font_color = args.fontcolor&lt;br /&gt;
    local is_collapsible = args.collapsible&lt;br /&gt;
    local is_mini = args.mini&lt;br /&gt;
    local is_plain = args.plain&lt;br /&gt;
    &lt;br /&gt;
    local collapsible_class = nil&lt;br /&gt;
    if is_collapsible then&lt;br /&gt;
        collapsible_class = cfg.classes.collapsible&lt;br /&gt;
        if not is_plain then is_mini = 1 end&lt;br /&gt;
        if font_color then&lt;br /&gt;
            font_style = (font_style or &amp;#039;&amp;#039;) .. &amp;#039;; color: &amp;#039; .. font_color .. &amp;#039;;&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local navbar_style = args.style&lt;br /&gt;
    local div = mw.html.create():tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
    div&lt;br /&gt;
        :addClass(cfg.classes.navbar)&lt;br /&gt;
        :addClass(cfg.classes.plainlinks)&lt;br /&gt;
        :addClass(cfg.classes.horizontal_list)&lt;br /&gt;
        :addClass(collapsible_class)&lt;br /&gt;
        :cssText(navbar_style)&lt;br /&gt;
&lt;br /&gt;
    if is_mini then div:addClass(cfg.classes.mini) end&lt;br /&gt;
&lt;br /&gt;
    local box_text = (args.text or cfg.box_text) .. &amp;#039; &amp;#039;&lt;br /&gt;
    if not (is_mini or is_plain) then&lt;br /&gt;
        div&lt;br /&gt;
            :tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
                :addClass(cfg.classes.box_text)&lt;br /&gt;
                :cssText(font_style)&lt;br /&gt;
                :wikitext(box_text)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local template = args.template&lt;br /&gt;
    local displayed_links = choose_links(template, args)&lt;br /&gt;
    local has_brackets = args.brackets&lt;br /&gt;
    local title_arg = get_title_arg(is_collapsible, template)&lt;br /&gt;
    local title_text = args[title_arg] or (&amp;#039;:&amp;#039; .. mw.getCurrentFrame():getParent():getTitle())&lt;br /&gt;
    local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style)&lt;br /&gt;
    div:node(list)&lt;br /&gt;
&lt;br /&gt;
    if is_collapsible then&lt;br /&gt;
        local title_text_class&lt;br /&gt;
        if is_mini then&lt;br /&gt;
            title_text_class = cfg.classes.collapsible_title_mini&lt;br /&gt;
        else&lt;br /&gt;
            title_text_class = cfg.classes.collapsible_title_full&lt;br /&gt;
        end&lt;br /&gt;
        div:done()&lt;br /&gt;
            :tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
            :addClass(title_text_class)&lt;br /&gt;
            :cssText(font_style)&lt;br /&gt;
            :wikitext(args[1])&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local frame = mw.getCurrentFrame()&lt;br /&gt;
    return frame:extensionTag{&lt;br /&gt;
        name = &amp;#039;templatestyles&amp;#039;, args = { src = cfg.hlist_templatestyles }&lt;br /&gt;
    } .. frame:extensionTag{&lt;br /&gt;
        name = &amp;#039;templatestyles&amp;#039;, args = { src = cfg.templatestyles }&lt;br /&gt;
    } .. tostring(div:done())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- PORTA DE ENTRADA / ADAPTAÇÃO DE PARÂMETROS&lt;br /&gt;
function p.navbar(frame)&lt;br /&gt;
    local origArgs = require(&amp;#039;Módulo:Arguments&amp;#039;).getArgs(frame)&lt;br /&gt;
    local translatedArgs = {}&lt;br /&gt;
&lt;br /&gt;
    -- Mapeia os parâmetros em português para o que o código em inglês espera&lt;br /&gt;
    for k, v in pairs(origArgs) do&lt;br /&gt;
        if k == &amp;#039;fonteestilo&amp;#039; then translatedArgs[&amp;#039;fontstyle&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;fontecor&amp;#039; then translatedArgs[&amp;#039;fontcolor&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;flexível&amp;#039; or k == &amp;#039;recolhível&amp;#039; then translatedArgs[&amp;#039;collapsible&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;pequeno&amp;#039; then translatedArgs[&amp;#039;mini&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;simples&amp;#039; then translatedArgs[&amp;#039;plain&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;estilo&amp;#039; then translatedArgs[&amp;#039;style&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;texto&amp;#039; then translatedArgs[&amp;#039;text&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;predefinição&amp;#039; then translatedArgs[&amp;#039;template&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;parênteses retos&amp;#039; or k == &amp;#039;colchetes&amp;#039; then translatedArgs[&amp;#039;brackets&amp;#039;] = v&lt;br /&gt;
        elseif k == &amp;#039;nãoeditar&amp;#039; or k == &amp;#039;semeditar&amp;#039; then translatedArgs[&amp;#039;noedit&amp;#039;] = v&lt;br /&gt;
        else&lt;br /&gt;
            -- Mantém os parâmetros originais em inglês (caso alguém use) e os numéricos (1, 2, etc.)&lt;br /&gt;
            translatedArgs[k] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Tratamento especial para os atalhos de links passados dentro da tabela (ex: {{navbar|Nome|v|d|e}})&lt;br /&gt;
    -- Traduz os atalhos em português (&amp;quot;discutir&amp;quot;, &amp;quot;histórico&amp;quot;, &amp;quot;vi&amp;quot;) para as letras que o choose_links espera.&lt;br /&gt;
    for i, val in ipairs(translatedArgs) do&lt;br /&gt;
        if val == &amp;#039;discutir&amp;#039; or val == &amp;#039;discussão&amp;#039; or val == &amp;#039;d&amp;#039; then translatedArgs[i] = &amp;#039;talk&amp;#039;&lt;br /&gt;
        elseif val == &amp;#039;editar&amp;#039; then translatedArgs[i] = &amp;#039;edit&amp;#039;&lt;br /&gt;
        elseif val == &amp;#039;histórico&amp;#039; or val == &amp;#039;hist&amp;#039; then translatedArgs[i] = &amp;#039;hist&amp;#039;&lt;br /&gt;
        elseif val == &amp;#039;mover&amp;#039; then translatedArgs[i] = &amp;#039;move&amp;#039;&lt;br /&gt;
        elseif val == &amp;#039;vigiar&amp;#039; or val == &amp;#039;vi&amp;#039; then translatedArgs[i] = &amp;#039;watch&amp;#039;&lt;br /&gt;
        elseif val == &amp;#039;ver&amp;#039; then translatedArgs[i] = &amp;#039;view&amp;#039; -- Caso usem &amp;quot;ver&amp;quot; explicitamente&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return p._navbar(translatedArgs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Tavoraadmin</name></author>
	</entry>
</feed>