Modul:Hilfsfunktionen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Automatisch synchronisiert.) |
K (Schützte „Modul:Hilfsfunktionen“: Automatisch gesperrt. ([Verschieben=Nur Administratoren erlauben] (unbeschränkt) [Bearbeiten=Nur Administratoren erlauben] (unbeschränkt))) |
(kein Unterschied)
|
Version vom 6. Januar 2022, 06:21 Uhr
Dokumentation und Testfälle unter Modul:Hilfsfunktionen/Doku.
-- Macht einen Trim in Kombination mit dem Entfernen der SMW-Tags, verwandelt nils in Strings function robusttrim(s) if s==nil then return '' end local p=mw.ustring.gsub(s,'%[%[SMW::on%]%]','') p=mw.ustring.gsub(p,'%[%[SMW::off%]%]','') return mw.text.trim(p) end -- Splittet einen String in einen Array anhand eines Separators function split(inputstr,sep) if sep==nil then sep="%s" end local t={} local i=1 for str in mw.ustring.gmatch(inputstr,"([^"..sep.."]+)") do t[i]=str i=i+1 end if i==1 then t[1]=inputstr end return t end -- Ausgabe einer beliebig geschachtelten Tabelle oder Variable -- i muss wegen Rekursion auf "" gesetzt werden function dump(o,i) if type(o)=='table' then local tkeys=getSortKeys(o) local s='\n'..i..'{ ' for _,k in ipairs(tkeys) do s=s..'\n'..i..'['..k..']='..dump(o[k],i.." ")..',' end return s..'\n'..i..'}' else return tostring(o) end end -- Umwandlung eines Parameters in eine Tabelle, bei nil leer function noniltable(s) if s==nil then return {} elseif type(s)=="table" then return s else return {s} end end -- Umwandlung eines Parameters in einen String, bei nil leer function nonilstring(s) if s==nil then return "" else return s end end --Sortierfunktion, die numerische Werte zuerst, dann Strings sortiert function sorter(k1, k2) if(type(k1)~=type(k2)) then return type(k1)=="number" end return k1<k2 end --Funktion gibt eine Tabelle mit sortierten Schlüsseln zurück, --mit der dann in Reihenfolge mittels ipairs über die Tabelle iteriert werden kann function getSortKeys(o) local tkeys={} for k in pairs(o) do table.insert(tkeys,k) end table.sort(tkeys,sorter) return tkeys end --Ausgabe eines Artikels als Link function outputlink(artikel) local a=mw.text.split(artikel,":",true)[2] if a==nil then --Hauptnamensraum a=artikel end return "[["..artikel.."|"..a.."]]" end --Ausgabe einer Kategorie zu einem Artikelnamen function outputkategorie(artikel) local a=mw.text.split(artikel,":",true)[2] if a==nil then a=artikel end return "[[Kategorie:"..a.."]]" end --Wandelt eine Zahl in einen String mit deutschem Komma um function tostringd(z) local s=tostring(z) s=s:gsub("%.",",") return s end