Modul:Tiårsnavigasjon
Hopp til navigering
Hopp til søk
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