Modul:Hilfsfunktionen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
VolkoV (Diskussion | Beiträge) (Automatisch synchronisiert.) |
VolkoV (Diskussion | Beiträge) 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