Modul:Check2: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K (9 Versionen von wikivoyage:Modul:Check2 importiert) |
||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 38: | Zeile 38: | ||
function Check._testParams ( templateArgs, params, modul ) | function Check._testParams ( templateArgs, params, modul ) | ||
-- Argumente des invoke-Aufrufs holen | |||
local frame = mw.getCurrentFrame() | |||
local localArgs = frame.args | |||
local localArgsNew = {} | |||
local templateArgsNew = {} | |||
for key,value in pairs ( localArgs ) do | |||
localArgsNew[mw.ustring.lower(tostring(key))] = value | |||
end | |||
for key,value in pairs ( templateArgs ) do | |||
templateArgsNew[mw.ustring.lower(tostring(key))] = value | |||
end | |||
localArgs = localArgsNew | |||
templateArgs = templateArgsNew | |||
-- Variablen für Parameterauswertung | |||
local errorMsg = 'Unbekannte(r) Parameter: ' | |||
local errorCat = '[[Kategorie:Vorlagen mit unbekannten Parametern]]' | |||
local errorOccured = false | |||
-- generell erlaubte Parameter | |||
local paramsWhitelist = { ignore_errors = 'ignore_errors', no_category = 'no_category', error_category = 'error_category' } | |||
-- Test ob unbekannte Parameter übergeben wurden (Tippfehler) | -- Test ob unbekannte Parameter übergeben wurden (Tippfehler) | ||
Zeile 104: | Zeile 104: | ||
function Check._isParamUsed ( templateArgs, paramName ) | function Check._isParamUsed ( templateArgs, paramName ) | ||
-- Argumente des invoke-Aufrufs holen | |||
local frame = mw.getCurrentFrame() | |||
local localArgs = frame.args | |||
local localArgsNew = {} | |||
local templateArgsNew = {} | |||
-- alles klein schreiben | |||
for key,value in pairs ( localArgs ) do | |||
localArgsNew[mw.ustring.lower(tostring(key))] = value | |||
end | |||
for key,value in pairs ( templateArgs ) do | |||
templateArgsNew[mw.ustring.lower(tostring(key))] = value | |||
end | |||
localArgs = localArgsNew | |||
templateArgs = templateArgsNew | |||
-- Test ein Parameter benutzt wurde | |||
for k, v in pairs(templateArgs) do | |||
if ( k == paramName ) then return true end | |||
end | |||
for k, v in pairs(localArgs) do | |||
if ( k == paramName ) then return true end | |||
end | |||
return false | return false | ||
end | end | ||
function Check._testFile ( file, modul | function Check._testFile ( file, modul ) | ||
local errorMsg = '' | local errorMsg = '' | ||
--eckige Klammern vergessen | --eckige Klammern vergessen | ||
if ( string.match ( file, '^%[%[%a' ) == nil ) then | if ( string.match ( file, '^%[%[%a' ) == nil ) then | ||
errorMsg = Check._error ( 'führende eckige Klammern bei der Dateieinbindung vergessen' , modul ) | |||
end | end | ||
if ( string.match ( file, '%]%]$' ) == nil ) then | if ( string.match ( file, '%]%]$' ) == nil ) then | ||
errorMsg = errorMsg .. Check._error ( 'abschließende eckige Klammern bei der Dateieinbindung vergessen' , modul ) | |||
end | end | ||
Aktuelle Version vom 22. Februar 2023, 22:31 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Check2/doc erstellt werden
local Check = {} function Check._error( error_str, modul ) local frame = mw.getCurrentFrame() local localArgs = frame.args local templateArgs = frame:getParent().args -- Allgemeine Parameter auswerten if templateArgs['ignore_errors'] == nil then if localArgs['ignore_errors'] == nil then templateArgs['ignore_errors'] = '0' else templateArgs['ignore_errors'] = localArgs['ignore_errors'] end end if templateArgs['ignore_errors'] == '1' or templateArgs['ignore_errors'] == 'true' then return '' end if templateArgs['no_category'] == nil then if localArgs['no_category'] == nil then templateArgs['no_category'] = '0' else templateArgs['no_category'] = localArgs['no_category'] end end if templateArgs['error_category'] == nil then if localArgs['error_category'] == nil then templateArgs['error_category'] = '[[Kategorie:Fehlerberichte des Moduls ' .. modul .. ']]' else templateArgs['error_category'] = '[[Kategorie:' .. localArgs['error_category'] .. ']]' end else templateArgs['error_category'] = '[[Kategorie:' .. templateArgs['error_category'] .. ']]' end -- Fehler generieren local error_str = '<strong class="error WV-Check-Error">Fehler im Modul [[Modul:' .. modul .. '|' .. modul .. ']]: ' .. error_str .. '</strong>'; if templateArgs['ignore_errors'] == '1' or templateArgs['ignore_errors'] == 'true' then error_str = '' end -- Kategorie generieren if templateArgs['no_category'] == '0' or templateArgs['ignore_errors'] == 'false' then error_str = templateArgs['error_category'] .. error_str end return error_str; end function Check._testParams ( templateArgs, params, modul ) -- Argumente des invoke-Aufrufs holen local frame = mw.getCurrentFrame() local localArgs = frame.args local localArgsNew = {} local templateArgsNew = {} for key,value in pairs ( localArgs ) do localArgsNew[mw.ustring.lower(tostring(key))] = value end for key,value in pairs ( templateArgs ) do templateArgsNew[mw.ustring.lower(tostring(key))] = value end localArgs = localArgsNew templateArgs = templateArgsNew -- Variablen für Parameterauswertung local errorMsg = 'Unbekannte(r) Parameter: ' local errorCat = '[[Kategorie:Vorlagen mit unbekannten Parametern]]' local errorOccured = false -- generell erlaubte Parameter local paramsWhitelist = { ignore_errors = 'ignore_errors', no_category = 'no_category', error_category = 'error_category' } -- Test ob unbekannte Parameter übergeben wurden (Tippfehler) -- 0-9 werden auch stillschweigend akzeptiert -- allgemeine Parameter werden auch akzeptiert for k, v in pairs(templateArgs) do if ( not ( ( params[k] ~= nil ) or ( paramsWhitelist[k] ~= nil ) ) ) and ( string.match ( k, '^%d*$' ) == nil ) then errorMsg = errorMsg .. '<span style="font-weight: bold; font-style:italic">' .. k .. '</span> (über Vorlage), ' errorOccured = true end end for k, v in pairs(localArgs) do if ( not ( ( params[k] ~= nil ) or ( paramsWhitelist[k] ~= nil ) ) ) and ( string.match ( k, '^%d*$' ) == nil ) then errorMsg = errorMsg .. '<span style="font-weight: bold; font-style:italic">' .. k .. '</span> (über invoke), ' errorOccured = true end end -- Parameter für Fehlerbehandlung auswerten if templateArgs['ignore_errors'] == nil then if localArgs['ignore_errors'] == nil then templateArgs['ignore_errors'] = '0' else templateArgs['ignore_errors'] = localArgs['ignore_errors'] end end if templateArgs['no_category'] == nil then if localArgs['no_category'] == nil then templateArgs['no_category'] = '0' else templateArgs['no_category'] = localArgs['no_category'] end end if errorOccured and ( templateArgs['ignore_errors'] == '0' or templateArgs['ignore_errors'] == 'false' ) then errorMsg = Check._error ( string.sub ( errorMsg, 1 , string.len ( errorMsg ) - 2 ), modul ) if templateArgs['no_category'] == '0' or templateArgs['no_category'] == 'false' then errorMsg = errorMsg .. '[[Kategorie:Vorlagen mit unbekannten Parametern]]' end else errorMsg = '' end return errorMsg end function Check._isParamUsed ( templateArgs, paramName ) -- Argumente des invoke-Aufrufs holen local frame = mw.getCurrentFrame() local localArgs = frame.args local localArgsNew = {} local templateArgsNew = {} -- alles klein schreiben for key,value in pairs ( localArgs ) do localArgsNew[mw.ustring.lower(tostring(key))] = value end for key,value in pairs ( templateArgs ) do templateArgsNew[mw.ustring.lower(tostring(key))] = value end localArgs = localArgsNew templateArgs = templateArgsNew -- Test ein Parameter benutzt wurde for k, v in pairs(templateArgs) do if ( k == paramName ) then return true end end for k, v in pairs(localArgs) do if ( k == paramName ) then return true end end return false end function Check._testFile ( file, modul ) local errorMsg = '' --eckige Klammern vergessen if ( string.match ( file, '^%[%[%a' ) == nil ) then errorMsg = Check._error ( 'führende eckige Klammern bei der Dateieinbindung vergessen' , modul ) end if ( string.match ( file, '%]%]$' ) == nil ) then errorMsg = errorMsg .. Check._error ( 'abschließende eckige Klammern bei der Dateieinbindung vergessen' , modul ) end return errorMsg end return Check