Modul:Text

Aus KoschWiki
Zur Navigation springen Zur Suche springen
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
  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

return p