Módulo:AtalhoAnos: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição Etiqueta: Revertido |
Sem resumo de edição Etiqueta: Reversão manual |
||
Linha 17: | Linha 17: | ||
local seculo_decada = math.floor((d - 1) / 100) + 1 | local seculo_decada = math.floor((d - 1) / 100) + 1 | ||
local seculo_romano_decada = getSeculoRomano(seculo_decada) | local seculo_romano_decada = getSeculoRomano(seculo_decada) | ||
local titulo = string.format("Década de %d | local titulo = string.format("Década de %d", d) | ||
-- Verifica existência da página | -- Verifica existência da página |
Edição das 01h30min de 23 de março de 2025
A documentação para este módulo pode ser criada em Módulo:AtalhoAnos/doc
-- Módulo:AtalhoAnos local p = {} -- Função para converter século em numeral romano local function getSeculoRomano(seculo) local seculo_romano_map = { [18] = "XVIII", [19] = "XIX", [20] = "XX", [21] = "XXI" } return seculo_romano_map[seculo] or "Desconhecido" end local function getDecadaString(ano) local decada = math.floor(ano / 10) * 10 local resultado = {} for i = -10, 10, 10 do local d = decada + i -- Calcula o século correto para a década local seculo_decada = math.floor((d - 1) / 100) + 1 local seculo_romano_decada = getSeculoRomano(seculo_decada) local titulo = string.format("Década de %d", d) -- Verifica existência da página local status, tituloObj = pcall(mw.title.new, titulo, 0) local existe = status and tituloObj and tituloObj.exists if i == 0 then if existe then table.insert(resultado, string.format("'''[[%s|Década de %d]]'''", titulo, d)) else table.insert(resultado, string.format("'''<font color=\"grey\">''Década de %d''</font>'''", d)) end else if existe then table.insert(resultado, string.format("[[%s|Década de %d]]", titulo, d)) else table.insert(resultado, string.format("<font color=\"grey\">''Década de %d''</font>", d)) end end end return table.concat(resultado, " - ") end local function getAnosString(ano) local resultado = {} for i = -2, 2 do local a = ano + i -- Verifica existência da página do ano local status, tituloObj = pcall(mw.title.new, tostring(a), 0) local existe = status and tituloObj and tituloObj.exists if i == 0 then table.insert(resultado, string.format("'''%d'''", a)) else if existe then table.insert(resultado, string.format("[[%d]]", a)) else table.insert(resultado, string.format("<font color=\"grey\">''%d''</font>", a)) end end end return table.concat(resultado, " - ") end function p.gerar(frame) local ano = tonumber(mw.title.getCurrentTitle().text) if not ano or ano < 1701 or ano > 2100 then return "<strong>Erro:</strong> Ano inválido ou fora do intervalo suportado (séculos XVIII a XXI)." end local decades = getDecadaString(ano) local years = getAnosString(ano) local tabela = "{| class=\"toccolours\" style=\"background:#F4F4FF\" align=\"center\"\n" tabela = tabela .. "|-\n| align=\"center\" |\n'''Calendário'''\n" tabela = tabela .. "|-\n| align=\"center\" |\n'''[[:Categoria:Décadas|Décadas]]''':<br /><small>" .. decades .. "</small>\n" tabela = tabela .. "|-\n| align=\"center\" |\n'''[[:Categoria:Anos|Anos]]''':<br/><small>" .. years .. "</small>\n" tabela = tabela .. "|}" return tabela end return p