Modul:Ukens konkurranse

Moduldokumentasjon

Navn rediger

Funksjonen navn skriver ut navnet på en konkurranse fra oppføringene i Module:Ukens konkurranse-liste 2013, Module:Ukens konkurranse-liste 2012, osv.. Første argument er årstall, andre argument er ukenummer. Hvis ingen parametere er gitt vil modulen skrive ut navnet på denne ukens konkurranse (på samme måte som funksjonen .

Eksempler:

  • Denne ukens konkurranse: {{#invoke:Ukens konkurranse|navn}} gir:
  • Uke 2, 2013: {{#invoke:Ukens konkurranse|navn|2013|2}} gir: Sjøfart i Norge
  • Alternativt kan man ha med 0 først: {{#invoke:Ukens konkurranse|navn|2013|02}} gir: Sjøfart i Norge
  • Alternativt kan man også bruke «gammel form»: {{#invoke:Ukens konkurranse|navn|2013-02}} gir: Sjøfart i Norge
  • En ikke-eksisterende uke: {{#invoke:Ukens konkurranse|navn|2013|55}} gir:

Fremtid/fortid/naa rediger

Funksjonen fremtid oppfører seg på samme måte som fuksjonen navn men skriver ut navnet på konkurranser som ligger fremover i tid. Funksjonen tar utgangspunkt i den nåværende uken og parameteren er antall uker fremover i tid (for eksempel +1 eller 1 gir neste ukes konkurranse).

Funksjonen fortid er helt identisk med fremtid, men gir navnet konkurranser som ligger bakover i tid (her må man bruke - foran parameteren)

Funksjonen naa (nb. lua støtter ikke særnorske tegn i funksjonsnavn) skriver ut navnet på denne ukens konkurranse.

Eksempler:

  • Denne ukens konkurranse: {{#invoke:Ukens konkurranse|naa}} gir:
  • 1 uke fremover i tid: {{#invoke:Ukens konkurranse|fremtid|1}} gir:
  • 5 uker fremover i tid {{#invoke:Ukens konkurranse|fremtid|+5}} gir:
  • 25 uker bakover i tid {{#invoke:Ukens konkurranse|fortid|25}} gir:

Se også rediger

uk = {}

function uk.navn(frame)
    local year
    local week
    if frame.args[1] == nil then
        return uk.naa(frame)
    end
    if frame.args[2] == nil then
        local spl = mw.text.split(frame.args[1], '-', true)
        year = tonumber(spl[1])
        week = tonumber(spl[2])
    else
        year = tonumber(frame.args[1])
        week = tonumber(frame.args[2])
    end
    local modname = 'Module:Ukens konkurranse-liste ' .. year
    local topics = require(modname)
    local topic = topics[week]
    return topic
end

function uk.fortid(fname)
    fname.args[1] = - tonumber(fname.args[1])
    return uk.fremtid(fname)
end

function uk.naa(frame)
    local lang = mw.getContentLanguage()
    local week = tonumber(lang:formatDate('W', now, true))
    local year = tonumber(lang:formatDate('o', now, true))
    local modname = 'Module:Ukens konkurranse-liste ' .. year
    local topics = require(modname)
    local topic = topics[week]
    return topic
end

function uk.fremtid(frame)
    local lang = mw.getContentLanguage()
    local diff = frame.args[1]
    local week = tonumber(lang:formatDate('W', diff..' week', true))
    local year = tonumber(lang:formatDate('o', diff..' week', true))
    local modname = 'Module:Ukens konkurranse-liste ' .. year
    local topics = require(modname)
    local topic = topics[week]
    return topic
end

return uk