Módulo:AtalhoAnos
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:AtalhoAnos/doc
-- Módulo:AtalhoAnos local p = {} local function getDecadaString(ano, seculo_romano) local decada = math.floor(ano / 10) * 10 local resultado = {} for i = -10, 10, 10 do local d = decada + i local titulo = string.format("Década de %d - Século %s", d, seculo_romano) local existe = mw.title.new(titulo).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 local existe = mw.title.new(tostring(a)).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 < 1801 or ano > 2100 then return "<strong>Erro:</strong> Ano inválido ou fora do intervalo suportado (séculos XIX a XXI)." end local seculo = math.floor((ano - 1) / 100) + 1 local seculo_romano_map = { [19] = "XIX", [20] = "XX", [21] = "XXI" } local seculo_romano = seculo_romano_map[seculo] or "Desconhecido" local decades = getDecadaString(ano, seculo_romano) 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