Modul:Namen
Zur Navigation springen
Zur Suche springen
Die Dokumentation für dieses Modul kann unter Modul:Namen/Doku erstellt werden
local p = {} require("Modul:Hilfsfunktionen") function pruefeName(name) --Titel in doppelten Anführungsstrichen raus if mw.ustring.find(name,"\"",1,true)~=nil then return "" end --Römische Zahlen (alles mit .) raus if mw.ustring.find(name,".",1,true)~=nil then return "" end --Zu aussortierende Namen local filter={"Mutter","Vater","Bruder","Schwester","Sohn","Tochter", "Heilige","Heiliger","Sankt","Sankta", "Meister","Meisterin","Abt","Äbtissin", "Baron","Beispiel"} for k,v in pairs(filter) do if v==name then return "" end end --Worte, nach denen nicht weiter gesucht wird local stop={"von","vom","zu","zum","zur","des","der","am","im","an","in", "auf","a","al","ap","aus","ay","ben","da","di","de","della","den","der", "die","du","dyll","dylli","han","ibn","il","ni","res","saba","te","ui", "vor","ya"} for k,v in pairs(stop) do if v==name then return nil end end return name end function vornamen(name) --Sonderzeichen raus local n=mw.ustring.gsub(name,"-"," ") n=mw.ustring.gsub(n,"'","") n=mw.ustring.gsub(n,"´"," ") n=mw.ustring.gsub(n,"`"," ") n=mw.ustring.gsub(n,","," ") --nach Leerzeichen teilen local namen=split(n," ") local result={} --bei nur einem Namen ist dies der Vorname, ansonsten wird der letzte Name immer ignoriert local c=#namen-1 if c==0 then c=1 end local i=1 for j=1,c do local n=pruefeName(namen[j]) if n~=nil and n~="" then result[i]=n i=i+1 end if n==nil then break end end return result end function p.Vornamen(frame) if (frame.args[1]==nil)or(frame.args[2]==nil) then return 'no parameter found' end local name=robusttrim(frame.args[1]) local nr=tonumber(robusttrim(frame.args[2])) local namen=vornamen(name) if namen[nr]==nil then return "" end return namen[nr] end return p