Modul:Text: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 1: | Zeile 1: | ||
local p = {} | local p = {} | ||
− | + | -- 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 | ||
+ | |||
local StringOderDefaultTrim=function(wert,default) | local StringOderDefaultTrim=function(wert,default) | ||
if(wert==nil) then return default end | if(wert==nil) then return default end | ||
wert2=wert:gsub("^%s*(.-)%s*$", "%1") | wert2=wert:gsub("^%s*(.-)%s*$", "%1") | ||
if(wert2=='') then return default end | if(wert2=='') then return default end | ||
− | return wert2 | + | return robusttrim(wert2) |
end | end | ||
Version vom 11. März 2024, 14:08 Uhr
Dokumentation und Testfälle unter Modul:Text/Doku.
local p = {} -- 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 local StringOderDefaultTrim=function(wert,default) if(wert==nil) then return default end wert2=wert:gsub("^%s*(.-)%s*$", "%1") if(wert2=='') then return default end return robusttrim(wert2) end function trim1(s) return (s:gsub("^%s*(.-)%s*$", "%1")) end function p.Text() frame=mw.getCurrentFrame() wert=StringOderDefaultTrim(frame.args[1],'') pre=StringOderDefaultTrim(frame.args[2],'') post=StringOderDefaultTrim(frame.args[3],'') if(wert=='') then return '' end return pre..wert..post end function subZeile(titel,wert) if(wert=='') then return '' end return '<div class="zeile"><div class="zltitel">'..titel..':</div><div class="zltext">'..wert..'</div></div>' end function p.Zeile() frame=mw.getCurrentFrame() titel=StringOderDefaultTrim(frame.args[1],'Titel') wert=StringOderDefaultTrim(frame.args[2],'') return subZeile(titel,wert) end function p.ZeileFett() frame=mw.getCurrentFrame() titel=StringOderDefaultTrim(frame.args[1],'Titel') wert=StringOderDefaultTrim(frame.args[2],'') if(wert=='') then return '' end return '<div class="zeilefett"><div class="zltitel">'..titel..':</div><div class="zltext">'..wert..'</div></div>' end function subZeilengruppe(titel,wert) if(wert=='') then return '' end return '<div class="zeilengruppe"><div class="zgtitel">'..titel..':</div><div class="zgtext">'..wert..'</div></div>' end function p.Zeilengruppe() frame=mw.getCurrentFrame() titel=StringOderDefaultTrim(frame.args[1],'Titel') wert=StringOderDefaultTrim(frame.args[2],'') return subZeilengruppe(titel,wert) end function p.KommaWenn() frame=mw.getCurrentFrame() wert1=StringOderDefaultTrim(frame.args[1],'') wert2=StringOderDefaultTrim(frame.args[2],'') if((wert1=='')and(wert2=='')) then return '' end if(wert1=='') then return wert2 end if(wert2=='') then return wert1 end return wert1..', '..wert2 end function p.KommaCollapse() frame=mw.getCurrentFrame() s=StringOderDefaultTrim(frame.args[1],'') return mw.text.trim(s:gsub(",+",',').."","\t\r\n\f\v ,") end return p