Modul:Text: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „ local p = {} local StringOderDefaultTrim=function(wert,default) if(wert==nil) then return default end wert2=wert:gsub("^%s*(.-)%s*$", "%1") if(wert2=…“) |
K (SyncBot) |
||
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
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%]%]','') | |||
p=mw.ustring.gsub(p,' ',' ') | |||
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 | ||
Zeile 19: | Zeile 27: | ||
if(wert=='') then return '' end | if(wert=='') then return '' end | ||
return pre..wert..post | return pre..wert..post | ||
end | |||
function subZeile(titel,wert) | |||
if(wert=='') then return '' end | |||
local titel2=titel..':' | |||
if titel2==":" then titel2="" end | |||
return '<div class="zeile"><div class="zltitel">'..titel2..'</div><div class="zltext">'..wert..'</div></div>' | |||
end | end | ||
Zeile 25: | Zeile 40: | ||
titel=StringOderDefaultTrim(frame.args[1],'Titel') | titel=StringOderDefaultTrim(frame.args[1],'Titel') | ||
wert=StringOderDefaultTrim(frame.args[2],'') | wert=StringOderDefaultTrim(frame.args[2],'') | ||
return subZeile(titel,wert) | |||
end | end | ||
Zeile 35: | Zeile 49: | ||
if(wert=='') then return '' end | if(wert=='') then return '' end | ||
return '<div class="zeilefett"><div class="zltitel">'..titel..':</div><div class="zltext">'..wert..'</div></div>' | 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 | end | ||
Zeile 41: | Zeile 60: | ||
titel=StringOderDefaultTrim(frame.args[1],'Titel') | titel=StringOderDefaultTrim(frame.args[1],'Titel') | ||
wert=StringOderDefaultTrim(frame.args[2],'') | wert=StringOderDefaultTrim(frame.args[2],'') | ||
if( | return subZeilengruppe(titel,wert) | ||
return | 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 | end | ||
function p.KommaCollapse() | |||
frame=mw.getCurrentFrame() | |||
s=StringOderDefaultTrim(frame.args[1],'') | |||
return mw.text.trim(s:gsub(",+",',').."","\t\r\n\f\v ,") | |||
end | |||
function p.StripTags() | |||
frame=mw.getCurrentFrame() | |||
s=StringOderDefaultTrim(frame.args[1],'') | |||
s = string.gsub(s, "%b<>", " ") | |||
return s | |||
end | |||
return p |
Aktuelle Version vom 21. November 2024, 10:26 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%]%]','') p=mw.ustring.gsub(p,' ',' ') 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 local titel2=titel..':' if titel2==":" then titel2="" end return '<div class="zeile"><div class="zltitel">'..titel2..'</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 function p.StripTags() frame=mw.getCurrentFrame() s=StringOderDefaultTrim(frame.args[1],'') s = string.gsub(s, "%b<>", " ") return s end return p