Modul:Utvald artikkeltittel
Dokumentasjon for modulen kan opprettast på Modul:Utvald artikkeltittel/dok
local eksport = {}
function eksport.tittelformat(aar, veke) -- tittelformatet har endra seg
if tonumber(aar) <= 2013 or (tonumber(aar) == 2014 and tonumber(veke) < 34) then
tittel = mw.title.new(string.format('Wikipedia:Vekas artikkel/Veke %d, %d', veke, aar))
else
tittel = mw.title.new(string.format('Wikipedia:Utvald artikkel/Veke %d, %d', veke, aar))
end
return tittel
end
function eksport.hovud(frame)
local veke = tonumber(frame:getParent().args[1])
local aar = tonumber(frame:getParent().args[2])
local neste = tonumber(frame:getParent().args['neste'])
local maanadNo = tonumber(os.date('%m'))
if not aar then
aar = tonumber(os.date('%Y'))
end
local tittel
if neste and veke == 52 and maanadNo == 1 then -- unngå problem med veke 52 i januar
if neste < 0 then
aar = aar - 1
else
veke = 0
end
end
if neste then
veke = veke + neste -- utan modulo; årsskifte vert handsama under
end
if veke <= 0 then -- handsam årsskifte
veke53 = eksport.tittelformat(aar - 1, 53):getContent() ~= nil -- finst det ein artikkel for veke 53?
if veke53 and eksport.tittelformat(aar - 1, 53):getContent():lower():match('#[ ]*omdir') then
veke53 = false
end
if veke53 then
tittel = eksport.tittelformat(aar - 1, 53 + veke)
else
tittel = eksport.tittelformat(aar - 1, 52 + veke)
end
elseif veke >= 52 then
veke53 = eksport.tittelformat(aar, 53):getContent() ~= nil -- finst det ein artikkel for veke 53?
if veke53 and eksport.tittelformat(aar, 53):getContent():lower():match('#[ ]*omdir') then
veke53 = false
end
if veke53 then
if veke ~= 53 then
aar = aar + 1
veke = veke % 53
end
tittel = eksport.tittelformat(aar, veke)
else
if veke ~= 52 then
aar = aar + 1
veke = veke % 52
end
tittel = eksport.tittelformat(aar, veke)
end
else
tittel = eksport.tittelformat(aar, veke)
end
local utvaldTekst = tittel:getContent()
local utvaldArtikkelTittel, artikkeltittel, lenkjeskildring
local treff
if utvaldTekst then
utvaldArtikkelTittel = mw.ustring.gmatch(utvaldTekst, "([']+%[%[:nn:[^]]+|[^]]+%]%][']+)")()
if utvaldArtikkelTittel then
artikkeltittel = mw.ustring.gmatch(utvaldArtikkelTittel, ':nn:([^]]+)|')()
artikkeltittel = artikkeltittel:gsub('_', ' ') -- passar på at det ikkje vert gjort skil på _ og mellorom
lenkjeskildring = mw.ustring.gmatch(utvaldArtikkelTittel, '|([^]]+)%]')()
str, talMellomromAT = string.gsub(artikkeltittel, ' ', '') -- talet på mellomrom i artikkeltittelen
str, talMellomromLS = string.gsub(lenkjeskildring, ' ', '')
-- likt tal på mellomrom men ulik artikkeltittel og lenkjeskildring kan tyda på at artikkeltittelen bør brukast som skildring (t.d. 'villsvin' og ikkje 'villsvinet')
if talMellomromAT == talMellomromLS and artikkeltittel ~= lenkjeskildring then
utvaldArtikkelTittel = utvaldArtikkelTittel:gsub('|' .. lenkjeskildring .. '%]', '|' .. artikkeltittel .. ']')
end
end
if not utvaldArtikkelTittel then -- finn tittelen dersom det ikkje er iw-lenkje i oppslagsordet
utvaldArtikkelTittel = mw.ustring.gmatch(utvaldTekst, "([']+%[%[[^]]+%]%][']+)")()
end
utvaldArtikkelTittel = utvaldArtikkelTittel:gsub("'''", '') -- fjern feitt format
--utvaldArtikkelTittel = mw.ustring.upper(mw.ustring.sub(utvaldArtikkelTittel, 1, 1)) .. mw.ustring.sub(utvaldArtikkelTittel, 2) -- stor fyrstbokstav på alle titlar
else
utvaldArtikkelTittel = nil
end
if utvaldArtikkelTittel then
return utvaldArtikkelTittel
else
return string.format('Ingen artikkel er utvald for veke %d, %d.', veke, aar)
end
end
return eksport