Modul:TerminText
Aus Hist. Verein Herne / Wanne-Eickel e. V.
Die Dokumentation für dieses Modul kann unter Modul:TerminText/Doku erstellt werden
local p = {}
-- Macht aus dem HTML der iCagenda-Feed-Beschreibung einen kurzen Klartext.
-- Aufruf: {{#invoke:TerminText|kurz|<html>|laenge=220}}
function p.kurz( frame )
local text = frame.args[1] or ''
local laenge = tonumber( frame.args.laenge ) or 220
-- 1. Alles vor dem ersten <p> abschneiden (Datumszeile + Vorschaubild)
local start = text:find( '<p' )
if start then
text = text:sub( start )
end
-- 2. HTML-Tags entfernen
text = text:gsub( '<[^>]*>', ' ' )
-- 3. HTML-Entities dekodieren ( & usw.)
text = mw.text.decode( text, true )
-- 4. Whitespace zusammenfassen
text = text:gsub( '%s+', ' ' )
text = mw.text.trim( text )
-- 5. Auf Wortgrenze kürzen
if mw.ustring.len( text ) > laenge then
text = mw.ustring.sub( text, 1, laenge )
text = text:gsub( '%s+%S*$', '' ) .. ' …'
end
return text
end
-- Holt aus der iCagenda-Ortsangabe ("Veranstaltungsname - geokodierte Adresse")
-- nur den Veranstaltungsnamen.
-- Aufruf: {{#invoke:TerminText|ort|<text>}}
function p.ort( frame )
local text = frame.args[1] or ''
text = text:gsub( '%s+', ' ' )
text = mw.text.trim( text )
local name = text:match( '^(.-) %- ' )
return name or text
end
return p
