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.