Zum Inhalt springen

Modul:Überschriftungagr

aus AufEinWort, der freien Forschung

-- Modul:Überschriftung -- Version 1.0 – Zusätzliche Prüfung, ob die Modul-Seite existiert

local p = {}

-- Hauptfunktion: Transkription des aktuellen Seitennamens function p.transkribiere(frame)

   local title = mw.title.getCurrentTitle()
   local content = title:getContent() or ""
   -- Schriftart extrahieren (mit Punkt zulassen, vollständig lesen)
   local schriftart = content:match("%[%[Schriftart::([%w%.%-_]+)%]%]")
   if not schriftart or schriftart == "" then
       return "[Fehler: (A) Keine Schriftart auf dieser Seite gefunden – ... fehlt.]"
   end
   -- Modulname zusammensetzen
   local modulname = "Überschriftung-" .. schriftart
   -- Vorab prüfen, ob die Seite existiert
   local modulTitel = mw.title.new("Modul:" .. modulname)
   if not modulTitel or not modulTitel.exists then
       return "[Fehler: (B1) Modulseite 'Modul:" .. modulname .. "' existiert nicht.]"
   end
   -- Tabelle laden
   local status, tabelle = pcall(mw.loadData, "Modul:" .. modulname)
   if not status or type(tabelle) ~= "table" then
       return "[Fehler: (B2) Modul 'Modul:" .. modulname .. "' konnte nicht geladen werden.]"
   end
   -- Transkription: zeichenweise Ersetzung
   local quelltext = title.text
   local ergebnis = ""
   for _, zeichen in utf8.codes(quelltext) do
       local buchstabe = utf8.char(zeichen)
       ergebnis = ergebnis .. (tabelle[buchstabe] or buchstabe)
   end
   return ergebnis

end

-- Debug-Funktion zur Anzeige der ermittelten Schriftart function p.zeigeSchriftart(frame)

   local title = mw.title.getCurrentTitle()
   local content = title:getContent() or ""
   local schriftart = content:match("%[%[Schriftart::([%w%.%-_]+)%]%]")
   if not schriftart or schriftart == "" then
       return "[Fehler: (A) Keine Schriftart auf dieser Seite gefunden – ... fehlt.]"
   end
   return "Ermittelte Schriftart: " .. schriftart

end

return p