Ir para o conteúdo

Módulo:Navbox/configuração

Origem: Wikipédia, a enciclopédia livre.
return {
    aria_label = 'Navbox',
    nowrap_item = '%s<span class="nowrap">%s</span>',
    
    -- Configuração do local do arquivo CSS associado
    templatestyles_src = 'Módulo:Navbox/styles.css',
    hlist_templatestyles = 'Hlist/styles.css',
    plainlist_templatestyles = 'Plainlist/styles.css',
    
    -- Marcadores internos para o controle de alternância de cores (Striping)
    marker = {
        oddeven = '\127_ODDEVEN_\127',
        restart = '\127_ODDEVEN0_\127',
        regex = '\127_ODDEVEN(%d?)_\127'
    },
    
    -- Categorias automáticas de monitoramento e manutenção
    category = {
        orphan = '[[Categoria:!Navecaixas órfãs]]',
        horizontal_lists = '!Navecaixas sem listas horizontais',
        background_colors = '!Navecaixas usando cores de fundo',
        illegible = '!Navecaixas potencialmente ilegíveis',
        borders = '!Navecaixas usando bordas',
        without_first_col = '[[Categoria:!Páginas que usam colunas de navecaixas sem a primeira coluna]]'
    },
    
    -- Palavras-chave internas usadas nas validações lógicas
    keyword = {
        border_subgroup = 'subgroup',
        border_child = 'child',
        border_none = 'none',
        evenodd_swap = 'swap',
        navbar_off = 'off',
        navbar_plain = 'plain',
        nocat_false = 'false',
        nowrapitems_yes = 'yes',
        orphan_yes = 'yes',
        state_collapsed = 'collapsed',
        state_off = 'off',
        state_plain = 'plain',
        subpage_doc = 'doc',
        tracking_no = 'no'
    },

    -- Expressões regulares para busca de padrões de texto específicos
    pattern = {
        listnum = '^list(%d+)$',
        navbox = '^Predefinição:Navbox$',
        navbox_title = 'class="navbox%-title"',
        nowrap = '^%s*<span class="nowrap">',
    },

    -- Nomes dos parâmetros canônicos internos (formato padrão EN)
    arg = {
        above = 'above',
        aboveclass = 'aboveclass',
        abovestyle = 'abovestyle',
        bodyclass = 'bodyclass',
        bodystyle = 'bodystyle',
        border = 'border',
        below = 'below',
        belowclass = 'belowclass',
        belowstyle = 'belowstyle',
        evenodd = 'evenodd',
        evenstyle = 'evenstyle',
        groupclass = 'groupclass',
        groupstyle = 'groupstyle',
        groupwidth = 'groupwidth',
        image = 'image',
        imageclass = 'imageclass',
        imageleft = 'imageleft',
        imageleftstyle = 'imageleftstyle',
        imagestyle = 'imagestyle',
        innerstyle = 'innerstyle',
        listclass = 'listclass',
        listpadding = 'listpadding',
        list1padding = 'list1padding',
        liststyle = 'liststyle',
        name = 'name',
        navbar = 'navbar',
        navboxclass = 'navboxclass',
        nocat = 'nocat',
        nowrapitems = 'nowrapitems',
        oddstyle = 'oddstyle',
        orphan = 'orphan',
        state = 'state',
        style = 'style',
        styleclass = 'styleclass',
        title = 'title',
        titleclass = 'titleclass',
        titlestyle = 'titlestyle',
        tracking = 'tracking',
        -- Função geradora dinâmica de chaves numeradas
        group_and_num = 'group%d',
        groupstyle_and_num = 'group%dstyle',
        list_and_num = 'list%d',
        listclass_and_num = 'list%class',
        liststyle_and_num = 'list%dstyle'
    },

    -- --- DICIONÁRIO DE TRADUÇÃO RESILIENTE (PT -> EN) ---
    translate = {
        -- Chaves diretas mapeadas em minúsculas para ignorar Case-Sensitivity
        ['nome'] = 'name',
        ['estado'] = 'state',
        ['borda'] = 'border',
        ['título'] = 'title',
        ['classe-título'] = 'titleclass',
        ['estilo-título'] = 'titlestyle',
        ['acima'] = 'above',
        ['classe-acima'] = 'aboveclass',
        ['estilo-acima'] = 'abovestyle',
        ['abaixo'] = 'below',
        ['classe-abaixo'] = 'belowclass',
        ['estilo-abaixo'] = 'belowstyle',
        ['imagem'] = 'image',
        ['classe-imagem'] = 'imageclass',
        ['estilo-imagem'] = 'imagestyle',
        ['imagem-esquerda'] = 'imageleft',
        ['estilo-imagem-esquerda'] = 'imageleftstyle',
        ['estilo-corpo'] = 'bodystyle',
        ['classe-corpo'] = 'bodyclass',
        ['estilo'] = 'style',
        ['classe'] = 'class',
        ['estilo-interno'] = 'innerstyle',
        ['classe-barra-navegação'] = 'navbarclass',
        ['estilo-barra-navegação'] = 'navbarstyle',
        ['classe-grupo'] = 'groupclass',
        ['estilo-grupo'] = 'groupstyle',
        ['classe-lista'] = 'listclass',
        ['estilo-lista'] = 'liststyle',
        ['estilo-linhas-ímpares'] = 'oddstyle',
        ['estilo-linhas-pares'] = 'evenstyle',
        ['largura-grupo'] = 'groupwidth',
        ['padding-lista'] = 'listpadding',
        ['padding-lista1'] = 'list1padding',
        ['nowrap-itens'] = 'nowrapitems',
        ['monitoramento'] = 'tracking',
        ['semcat'] = 'nocat',
        ['órfã'] = 'orphan',
        ['pares-ímpares'] = 'evenodd',
        
        -- Otimização Crítica: Padrões numéricos com hífens devidamente escapados (%-)
        patterns = {
            { 'lista(%d+)', 'list%d' },
            { 'grupo(%d+)', 'group%d' },
            { 'estilo%-lista(%d+)', 'list%dstyle' },
            { 'estilo%-grupo(%d+)', 'group%dstyle' },
        },

        -- Interceptação e padronização dos valores de parâmetros aceitos (PT -> EN)
        values = {
            ['subgrupo'] = 'subgroup',
            ['filho'] = 'child',
            ['filha'] = 'child',
            ['nenhuma'] = 'none',
            ['sim'] = 'yes',
            ['não'] = 'no',
            ['desligada'] = 'off',
            ['desligado'] = 'off',
            ['desligar'] = 'off',
            ['simples'] = 'plain',
            ['falso'] = 'false',
            ['falsa'] = 'false',
            ['collapsed'] = 'collapsed',
            ['oculto'] = 'collapsed',
            ['ocultada'] = 'collapsed',
            ['ocultar'] = 'collapsed',
            ['expandido'] = 'uncollapsed',
            ['uncollapsed'] = 'uncollapsed',
            ['autocollapse'] = 'autocollapse',
            ['auto-ocultar'] = 'autocollapse'
        }
    },

    -- Classes CSS globais estruturais do MediaWiki / Wikipédia
    class = {
        autocollapse = 'autocollapse',
        collapsible = 'mw%-collapsible',
        collapsed = 'mw%-collapsed', -- Injeta a classe correta exigida pelo MediaWiki
        navbox = 'navbox',
        navbox_title = 'navbox%-title',
        navbox_abovebelow = 'navbox%-abovebelow',
        navbox_group = 'navbox%-group',
        navbox_list = 'navbox%-list',
        navbox_inner = 'navbox%-inner',
        navbox_subgroup = 'navbox%-subgroup',
        navbox_part = 'navbox%-part%-',
        nowraplinks = 'nowraplinks'
    }
}