Nicht angemeldeter Benutzer - Bearbeiten von Seiten ist nur als angemeldeter Benutzer möglich.
Änderungen
Zur Navigation springen
Zur Suche springen
Zeile 1:
Zeile 1:
− +
Zeile 5:
Zeile 5:
− +
− +
Zeile 18:
Zeile 18:
− +
Zeile 35:
Zeile 35:
− +
Zeile 53:
Zeile 53:
− +
− +
− +
Zeile 64:
Zeile 64:
− +
− +
− +
− +
− +
− +
− +
Zeile 83:
Zeile 83:
− +
Zeile 265:
Zeile 265:
− +
Zeile 279:
Zeile 279:
+
+
Zeile 848:
Zeile 850:
− +
+
+
+
+
Zeile 959:
Zeile 965:
+
Zeile 971:
Zeile 978:
− +
− if type( access ) == "string" then+
+
+
+
+
Modul:TemplatePar (Quelltext anzeigen)
Version vom 7. September 2013, 20:51 Uhr
, 20:51, 7. Sep. 2013bugfix (valid unnamed) + kl. updates
--[=[ TemplatePar 2013-07-09
--[=[ TemplatePar 2013-09-06
Template parameter utility
Template parameter utility
* assert
* assert
* count
* count
* countNotEmpty
* countNotEmpty
* downcase
* downcase()
* match
* match
* valid
* valid
* verify
* verify()
* TemplatePar()
* TemplatePar()
]=]
]=]
local messagePrefix = "lua-module-TemplatePar-"
local messagePrefix = "lua-module-TemplatePar-"
local l10nDef = {}
local l10nDef = {}
l10nDef[ "en" ] = {
l10nDef.en = {
badPattern = "#invoke:TemplatePar pattern syntax error",
badPattern = "#invoke:TemplatePar pattern syntax error",
dupOpt = "#invoke:TemplatePar repeated optional parameter",
dupOpt = "#invoke:TemplatePar repeated optional parameter",
unknownRule = "#invoke:TemplatePar unknown rule"
unknownRule = "#invoke:TemplatePar unknown rule"
}
}
l10nDef[ "de" ] = {
l10nDef.de = {
badPattern = "#invoke:TemplatePar Syntaxfehler des pattern",
badPattern = "#invoke:TemplatePar Syntaxfehler des pattern",
dupOpt = "#invoke:TemplatePar Optionsparameter wiederholt",
dupOpt = "#invoke:TemplatePar Optionsparameter wiederholt",
}
}
local Patterns = {
local Patterns = {
[ "ASCII" ] = "^[ -~]*$",
[ "ASCII" ] = "^[ -~]*$",
[ "ASCII+" ] = "^[ -~]+$",
[ "ASCII+" ] = "^[ -~]+$",
[ "ASCII+1" ] = "^[!-~]+$",
[ "ASCII+1" ] = "^[!-~]+$",
[ "n" ] = "^%-?[0-9]*$",
[ "n" ] = "^[%-]?[0-9]*$",
[ "n>0" ] = "^[0-9]*[1-9][0-9]*$",
[ "n>0" ] = "^[0-9]*[1-9][0-9]*$",
[ "N+" ] = "^%-?[1-9][0-9]*$",
[ "N+" ] = "^[%-]?[1-9][0-9]*$",
[ "N>0" ] = "^[1-9][0-9]*$",
[ "N>0" ] = "^[1-9][0-9]*$",
[ "x" ] = "^[0-9A-Fa-f]*$",
[ "x" ] = "^[0-9A-Fa-f]*$",
[ "X" ] = "^[0-9A-F]*$",
[ "X" ] = "^[0-9A-F]*$",
[ "X+" ] = "^[0-9A-F]+$",
[ "X+" ] = "^[0-9A-F]+$",
[ "0,0" ] = "^%-?[0-9]*,?[0-9]*$",
[ "0,0" ] = "^[%-]?[0-9]*,?[0-9]*$",
[ "0,0+" ] = "^%-?[0-9]+,[0-9]+$",
[ "0,0+" ] = "^[%-]?[0-9]+,[0-9]+$",
[ "0,0+?" ] = "^%-?[0-9]+,?[0-9]*$",
[ "0,0+?" ] = "^[%-]?[0-9]+,?[0-9]*$",
[ "0.0" ] = "^%-?[0-9]*%.?[0-9]*$",
[ "0.0" ] = "^[%-]?[0-9]*[%.]?[0-9]*$",
[ "0.0+" ] = "^%-?[0-9]+%.[0-9]+$",
[ "0.0+" ] = "^[%-]?[0-9]+%.[0-9]+$",
[ "0.0+?" ] = "^%-?[0-9]+%.?[0-9]*$",
[ "0.0+?" ] = "^[%-]?[0-9]+[%.]?[0-9]*$",
[ ".0+" ] = "^%-?[0-9]*%.?[0-9]+$",
[ ".0+" ] = "^[%-]?[0-9]*[%.]?[0-9]+$",
[ "ID" ] = "^[A-Za-z]?[A-Za-z_0-9]*$",
[ "ID" ] = "^[A-Za-z]?[A-Za-z_0-9]*$",
[ "ID+" ] = "^[A-Za-z][A-Za-z_0-9]*$",
[ "ID+" ] = "^[A-Za-z][A-Za-z_0-9]*$",
[ "base64+" ] = "^[A-Za-z0-9%+/]+$",
[ "base64+" ] = "^[A-Za-z0-9%+/]+$",
[ "aa" ] = "[%a%a].*[%a%a]",
[ "aa" ] = "[%a%a].*[%a%a]",
[ "pagename" ] = string.format( "^[^#<>%%[%%]|{}%s%-s%s]+$",
[ "pagename" ] = string.format( "^[^#<>%%[%%]|{}%c-%c%c]+$",
1, 31, 127 ),
1, 31, 127 ),
[ "+" ] = "%S"
[ "+" ] = "%S"
end
end
elseif s ~= "*" then
elseif s ~= "*" then
local op, n, plus = s:match( "([<!>]=?)([-0-9][%S]*)(+?)" )
local op, n, plus = s:match( "([<!=>]=?)([-0-9][%S]*)(+?)" )
if op then
if op then
n = tonumber( n )
n = tonumber( n )
elseif op == ">=" then
elseif op == ">=" then
i = ( i >= n )
i = ( i >= n )
elseif op == "==" then
i = ( i == n )
elseif op == "!=" then
elseif op == "!=" then
i = ( i ~= n )
i = ( i ~= n )
s = r
s = r
end
end
r = TemplatePar[ action ]( s, options )
if action == "valid" then
r = TemplatePar.valid( s, options )
elseif action == "assert" then
r = TemplatePar.assert( s, "", options )
end
end
end
end
end
-- Precondition:
-- Precondition:
-- access -- id of parameter in template transclusion
-- access -- id of parameter in template transclusion
-- string or number
-- options -- table or nil; optional details
-- options -- table or nil; optional details
-- Postcondition:
-- Postcondition:
-- failure()
-- failure()
-- finalize()
-- finalize()
local r
local r = type( access )
if r == "string" then
r = mw.text.trim( access )
r = mw.text.trim( access )
if #r == 0 then
if #r == 0 then
r = false
r = false
end
end
elseif r == "number" then
r = access
else
r = false
end
end
if r then
if r then