Module:Skryfkompetisie

Dokumentasie vir hierdie module kan geskep word by: Module:Skryfkompetisie/doc

require('strict') -- force strict type checks, and block use of global variables

local p = {};     --All Lua modules on Wikipedia must begin by defining a variable 
                    --that will hold their externally accessible functions.
                    --Such variables can have whatever name you want and may 
                    --also contain various data as well as functions.
                    

-- local functions must go at the top (before you call them) otherwise the interpretor thinks they are not defined

-- range is inclusive
local function isInRange(value, min, max)
	if value == nil or value:gsub("%s+", "") == "" then
		return false
	end
	
    if type(min) ~= "number" or type(max) ~= "number" then
        error("All arguments must be numbers")
    end
    
    local num_val = tonumber(value)
	if num_val == nil then
	    error("Failed to convert '" .. value .. "' to number")
	end
    
    return num_val >= min and num_val <= max
end
                    
p.kry_inhoud = function(frame)     --Add a function to "p".  
                                        --Such functions are callable in Wikipedia
                                        --via the #invoke command.
                                        --"frame" will contain the data that Wikipedia
                                        --sends this function when it runs. 
                                 -- 'kry_inhoud' is a name of your choice. The same name needs to be referred to when the module is used.
    
    
    local jaar = frame.args[1]
    local rang = frame.args[2]
    jaar = jaar:gsub("%s+", "")
    rang = rang:gsub("%s+", "")
    local text = ''
    
	mw.addWarning("jaar is " .. (jaar or "nil"))
	mw.addWarning("rang is " .. (rang or "nil"))
	
	if jaar == nil then
		text = 'FOUT : ongeldige jaar parameter'
		mw.addWarning("FOUT : ongeldige jaar parameter")
	else
		jaar = ' ' .. jaar .. ' '
	end
	
    
    if not isInRange(rang, 1, 10) then
        -- return defualt template
        text = "'''Hierdie artikel is ingeskryf vir die [[Wikipedia:Skryfkompetisie vir hoërskole|Afrikaanse Wikipedia Skryfkompetisie vir hoërskole" .. jaar .. "]]''' <br /><br /> As u van plan was om ’n groot wysiging aan hierdie artikel aan te bring, is dit miskien 'n beter idee om dit vir eers op die besprekingsblad voor te stel."
    elseif rang == '1' then
         -- indicate the article came first in the writing competition
         text = "'''Hierdie artikel is die wenartikel in die [[Wikipedia:Skryfkompetisie vir hoërskole|Afrikaanse Wikipedia Skryfkompetisie vir hoërskole" .. jaar .. "]]''' <br /> Ons jong Afrikaanse Wikipediane is nog besig om hulle vaardighede te oefen. Hulle mag nou na die kompetisie weer verder aan hulle artikels redigeer en verbeter. Geniet asseblief die artikel met dit ingedagte."
    elseif rang == '2' then
         -- indicate the article came second in the writing competition
         text = "'''Hierdie artikel is die tweede plek wenner in die [[Wikipedia:Skryfkompetisie vir hoërskole|Afrikaanse Wikipedia Skryfkompetisie vir hoërskole" .. jaar .. "]]''' <br /> Ons jong Afrikaanse Wikipediane is nog besig om hulle vaardighede te oefen. Hulle mag nou na die kompetisie weer verder aan hulle artikels redigeer en verbeter. Geniet asseblief die artikel met dit ingedagte."
    elseif rang == '3' then
         -- indicate the article came third in the writing competition
         text = "'''Hierdie artikel is die derde plek wenner in die [[Wikipedia:Skryfkompetisie vir hoërskole|Afrikaanse Wikipedia Skryfkompetisie vir hoërskole" .. jaar .. "]]''' <br /> Ons jong Afrikaanse Wikipediane is nog besig om hulle vaardighede te oefen. Hulle mag nou na die kompetisie weer verder aan hulle artikels redigeer en verbeter. Geniet asseblief die artikel met dit ingedagte."
    elseif isInRange(rang, 4, 10) then
         -- indicate the article placed in the top ten in the writing competition
    	text = "'''Hierdie artikel is een van die Top Tien-artikels in die [[Wikipedia:Skryfkompetisie vir hoërskole|Afrikaanse Wikipedia Skryfkompetisie vir hoërskole" .. jaar .. "]]''' <br /> Ons jong Afrikaanse Wikipediane is nog besig om hulle vaardighede te oefen. Hulle mag nou na die kompetisie weer verder aan hulle artikels redigeer en verbeter. Geniet asseblief die artikel met dit ingedagte."
    end
    
    -- reference docs : https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#mw.html:wikitext
    local div_root = mw.html.create('div')
        -- :addClass('')
        -- :attr( 'class', 'infobox' )
        :css({
            ['border'] = '2px solid #0087ff',
            ['color'] = 'var(--color-base, #202122)',
            ['background-color'] = 'var(--background-color-neutral, #eaecf0)',
            ['margin-left'] = 'auto',
            ['margin-right'] = 'auto',
            ['padding'] = '10px',
            ['max-width'] = '80%'
        })
        :wikitext(text)


	return tostring(div_root)
	
end -- end of function


return p    --All modules end by returning the variable containing their functions to Wikipedia.