Modul:Tiårsnavigasjon
Dokumentasjon for denne modulen kan opprettes på Modul:Tiårsnavigasjon/dok
local p = {} local fkrText = 'f.Kr.' local fvtText = 'fvt.' local aareneText = '-årene' function p.tiaar (frame) local tall, fvt, aarstall local malparameter = frame:getParent().args if malparameter[1] ~= nil then local sammensatt = {} for i, v in pairs(malparameter) do -- process each index-value pair table.insert(sammensatt, malparameter[i]) end sammensatt = table.concat(sammensatt) tall = HentTallFraStreng(sammensatt) if HentFvtFraStreng(sammensatt) then fvt = true end end if frame.args["aar"] then tall = HentTallFraStreng(frame.args["aar"]) elseif tall == nil then tall = HentTallFraTittel() end if frame.args["fvt"] then fvt = true elseif not fvt then fvt = HentFvtFraTittel(frame) end if fvt then aarstall = "[[" .. tall .. aareneText .. " " .. fkrText .. "|" .. tall .. aareneText .. " " .. fvtText .. "]]" else aarstall = "[[" .. tall .. aareneText .. "|" .. tall .. aareneText .. " " .. "]]" end -- frame:expandTemplate:{title='flatlist', args={Aarliste(tall, fvt)} -- NaboAarene(tall, fvt) return frame:expandTemplate{title='Navboks', args={navn = 'Tiår', tittel = aarstall, over = NaboAarene(tall, fvt), innhold = frame:expandTemplate{title='flatlist', args={Aarliste(tall, fvt)}}}} end function HentTallFraTittel() local tittel = HentTallFraStreng(tostring(mw.title.getCurrentTitle())) return tittel end function HentFvtFraTittel() local tittel = tostring(mw.title.getCurrentTitle()) if string.match(tittel, '%l%p%u%l%p') then return true else return false end end function HentTallFraStreng(streng) -- henter første tallgruppe fra angitt streng local resultat = string.match(streng, '%d+') if resultat ~= nil then return resultat else return 0 end end function HentFvtFraStreng(streng) if string.match(streng, '%D+') then return true else return false end end function NaboAarene(nummer, kris) -- ◄ 0-årene fvt. – 10-årene ► local forrige,neste if (nummer == "0" and kris) then neste = "[[0" .. aareneText .. "|0" .. aareneText .. "]]" forrige = "[[10" .. aareneText .. " " .. fkrText .. "|10" .. aareneText .. " " .. fvtText .. "]]" elseif (nummer == "0" and kris == false) then neste = "[[10" .. aareneText .. "|10" .. aareneText .. "]]" forrige = "[[0" .. aareneText .. " " .. fkrText .. "|0" .. aareneText .. " " .. fvtText .. "]]" else if kris == true then neste = "[[" .. nummer+10 .. aareneText .. " " .. fkrText .. "|" .. nummer+10 .. aareneText .. " " .. fvtText .. "]]" forrige = "[[" .. nummer-10 .. aareneText .. " " .. fkrText .. "|" .. nummer-10 .. aareneText .. " " .. fvtText .. "]]" else neste = "[[" .. nummer+10 .. aareneText .. "|" .. nummer+10 .. aareneText .. "]]" forrige = "[[" .. nummer-10 .. aareneText .. "|" .. nummer-10 .. aareneText .. "]]" end end return '◄ ' .. forrige .. ' – ' .. neste .. ' ►' end function Aarliste(nummer, kris) local listeMedAar = {} local lenkedeAar = {} if nummer == 0 then listeMedAar = {1, 2, 3, 4, 5, 6, 7, 8, 9} else for t = 0, 9, 1 do table.insert(listeMedAar, nummer+t) end end if kris then table.sort(listeMedAar, function(a, b) return a > b end) for t = 1, #listeMedAar, 1 do listeMedAar[t] = "[[" .. listeMedAar[t] .. " " .. fkrText .. "|" .. listeMedAar[t] .. " " .. fvtText .. "]]" end else for t = 1, #listeMedAar, 1 do listeMedAar[t] = "[[" .. listeMedAar[t] .. "|" .. listeMedAar[t] .. "]]" end end return '\n*' .. table.concat(listeMedAar, '\n*') end return p