Modul:Vorlage:Begriffsklärung
Zur Navigation springen
Zur Suche springen
Die Dokumentation für dieses Modul kann unter Modul:Vorlage:Begriffsklärung/Doku erstellt werden
--[=[ 2013-05-27
Vorlage:Begriffsklärung
]=]
local Untervorlage = "Vorlage:Begriffsklärung/Kopf"
local function main( params, frame )
local seite = mw.title.getCurrentTitle()
local ns = seite.namespace
local args = { Lemma = seite.text }
local k, v
for k, v in pairs( params ) do
args[ k ] = v
end -- for k, v
if ns == 0 then
local score = "{{%s*[bB]egriffsklärung%s*[^}]*}}"
local scan
local story
if seite.exists then
story = seite:getContent():gsub( "<!--[^>]*-->", "" )
else -- Seite wird erstellt
story = "{{Begriffsklärung}}"
end
if mw.ustring.find( story, score ) then
if not args.KlammerImTitel then
local s, k = args.Lemma:match( "^(.+) %((.+)%)$" )
if k then
args.Lemma = s
if k ~= "Begriffsklärung" then
if k == "BKL" or
k == "BKS" or
k == "Begriffserklärung" then
args.Fehler = "(BKL)"
else
args.Fehler = "Klammerlemma"
end
end
end
end
if not args.Fehler then
local abk = "^[A-ZÄÖÜ]+[0-9]*$"
local s
local lead
local lean = false
local last = false
if mw.ustring.match( args.Lemma, abk ) then
args.Abk = "1"
end
scan = "^(%s*" .. score .. ")(.*)$"
story = story:gsub( "</?onlyinclude>", "" )
lead, s = mw.ustring.match( story, scan )
if s then
story = s
scan = "^ *[\n]? *\n%*"
if mw.ustring.find( story, scan ) then
lean = true
end
end
scan = score .. "%s*(.*)$"
s = mw.ustring.match( story, scan )
if s then
s = s:gsub( "%[%[%s*[Kk]ategorie:[^%]]+%]%]", "" )
:gsub( "%[%[[a-z][a-z][a-z]?:[^%]]+%]%]", "" )
if s:find( "%S" ) then
args.Fehler = "Position"
end
last = true
end
if lead and not args.Fehler then
if lean then
args.tmp201306 = "1"
end
if last then
args.Doppelt = "1"
end
end
end
else
args.Fehler = "Einbindung"
end
elseif ns % 2 == 0 and ns ~= 2 and ns ~= 10 then
args.Fehler = "Namensraum"
end
return frame:expandTemplate{ title = Untervorlage, args = args }
end -- main()
-- Export
local p = {}
function p.test( a )
local lucky, r = pcall( main, a, mw.getCurrentFrame() )
return r
end
function p.f( frame )
local lucky, r = pcall( main, frame:getParent().args, frame )
return r
end
return p