Modul:TerminText: Unterschied zwischen den Versionen
Aus Hist. Verein Herne / Wanne-Eickel e. V.
Inhalt gelöscht Inhalt hinzugefügt
Die Seite wurde neu angelegt: „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:gsu…“ |
KKeine Bearbeitungszusammenfassung |
||
| Zeile 31: | Zeile 31: | ||
return text |
return text |
||
end |
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 |
return p |
||
Aktuelle Version vom 12. Juni 2026, 13:01 Uhr
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
