„Modul:Schaufenster“ – Versionsunterschied
Erscheinungsbild
K Änderung 83957 von Klaus (Diskussion) rückgängig gemacht. Markierung: Rückgängigmachung |
KKeine Bearbeitungszusammenfassung |
||
| Zeile 47: | Zeile 47: | ||
local bereinigt = aufbereiter.saeubern(roh) | local bereinigt = aufbereiter.saeubern(roh) | ||
return frame:preprocess( | return frame:preprocess(aufbereiter.saeubern(frame:preprocess(roh))) | ||
end | end | ||
return p | return p | ||
Version vom 9. April 2025, 13:00 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Schaufenster/Doku erstellt werden
-- Modul:Bereichsfenster
-- Gibt einen bestimmten Abschnitt ("Bereich") einer Seite zurück, bereinigt von SMW- und Kategorie-Wirkungen
local p = {}
local aufbereiter = require("Modul:Linkaufbereitung")
-- Hilfsfunktion: Gibt Inhalt zwischen zwei Mustern zurück
local function extrahiereBereich(text, startMarke, endMarke)
local muster = startMarke .. "(.-)" .. endMarke
local inhalt = mw.ustring.match(text, muster)
return inhalt or ""
end
function p.zeige(frame)
local seitentitel = frame.args[1]
local bereich = frame.args[2]
if not seitentitel or seitentitel == "" then
return "Fehler: Kein Seitentitel angegeben."
end
local page = mw.title.new(seitentitel)
if not page or not page.exists then
return "Fehler: Seite '" .. seitentitel .. "' existiert nicht."
end
local content = page:getContent()
if not content then
return "Fehler: Seite '" .. seitentitel .. "' enthält keinen Inhalt."
end
if bereich == "__DEBUG__" then
return content -- zeigt rohen Seiteninhalt an
end
local roh = ""
if bereich == "Anfang" then
roh = mw.ustring.match(content, "^(.-)\n==") or content
else
-- Suche nach == Bereich == (mit optionalem Leerraum)
local patternStart = "==%s*" .. bereich .. "%s*=="
local patternEnd = "==[^=].-=="
roh = extrahiereBereich(content, patternStart, patternEnd)
if roh ~= "" then
roh = "== " .. bereich .. " ==\n" .. roh
end
end
local bereinigt = aufbereiter.saeubern(roh)
return frame:preprocess(aufbereiter.saeubern(frame:preprocess(roh)))
end
return p