Zum Inhalt springen

Modul:MagicWords/Data

Aus Wikonia

Modul:MagicWords/Data – Datenspeicher für Magic Words[Quelltext bearbeiten]

Diese Modul-Unterseite dient ausschließlich als zentraler Datenspeicher für Modul:MagicWords. Es enthält die Zuordnung der benutzerfreundlichen Common Names zu den eigentlichen MediaWiki Magic Words und legt fest, ob diese aktiv unterstützt werden.

Das Modul darf keinen ausführbaren Code (außer der reinen Tabellendefinition) enthalten, um eine optimale Performance durch das mw.loadData Caching zu gewährleisten.

Datenformat[Quelltext bearbeiten]

Jeder Eintrag in der Lua-Tabelle folgt diesem strikten Format:

["Common Name"] = {"Magic Word oder Variable", Supported (true/false)},
  • "Common Name" (Schlüssel): Ein eindeutiger, leicht verständlicher Name, der im Hauptmodul zur Abfrage verwendet wird (z.B. Nicht_Indexieren).
  • "Magic Word..." (Wert 1): Das tatsächliche Wikitext-Element (z.B. __NOINDEX__ oder {{CURRENTYEAR}}).
  • Supported (Wert 2): Ein boolescher Wert (true oder false), der festlegt, ob das Element aktiv und empfohlen wird. Bei false fügt das Hauptmodul die Wartungskategorie hinzu.

Die vollständige Datentabelle (Modul:MagicWords/Data)[Quelltext bearbeiten]

Die Daten sind nach offiziellen MediaWiki-Kategorien strukturiert, um die Wartung zu vereinfachen. Änderungen hinsichlich der Unterstützung und Ausbau der Datengrundlage sollten von der MediaWiki-Dokumentation abgeleitet werden.

Wartungshinweise[Quelltext bearbeiten]

Änderungen an dieser Seite werden sofort im Modul:MagicWords wirksam. Nach einer Bearbeitung müssen alle Artikel, die das Hauptmodul verwenden, null-editiert werden, um die Änderungen des mw.loadData-Caches zu übernehmen.


local data = {
    -- Format: Common Name = {Magic Word, Supported (true/false)}

    -- === 1. Verhaltensschalter (Behavior Switches) ===
    -- Steuern das Seiten-Rendering-Verhalten, meist __WORT__
    ["Kein_Inhaltsverzeichnis"]        = {"__NOTOC__", true},
    ["Erzwinge_Inhaltsverzeichnis"]    = {"__FORCETOC__", true},
    ["Inhaltsverzeichnis_Position"]    = {"__TOC__", true},
    ["Keine_Abschnittslinks"]          = {"__NOEDITSECTION__", true},
    ["Neuer_Abschnittslink"]           = {"__NEWSECTIONLINK__", true},
    ["Kein_Neuer_Abschnittslink"]      = {"__NONEWSECTIONLINK__", true},
    ["Definitive_Weiterleitung"]       = {"__STATICREDIRECT__", true},
    
    -- Suchmaschinen und Indexierung
    ["Nicht_Indexieren"]               = {"__NOINDEX__", true},
    ["Indexieren"]                     = {"__INDEX__", true},
    
    -- Kategorien und Dateien
    ["Versteckte_Kategorie"]           = {"__HIDDENCAT__", true},
    ["Kein_Galerie"]                   = {"__NOGALLERY__", true},
    
    -- Sprachkonvertierung (einige sind veraltet/deaktiviert)
    ["Keine_Inhaltskonvertierung"]     = {"__NOCONTENTCONVERT__", false}, -- Veraltet in den meisten modernen Wikis
    ["Keine_Titelkonvertierung"]       = {"__NOTITLECONVERT__", false},   -- Veraltet in den meisten modernen Wikis
    
    -- Diskussionen und Spezialseiten
    ["Archiv"]                         = {"__ARCHIVEDTALK__", true},
    ["Keine_Benutzerseite"]            = {"__NOGLOBAL__", false},           -- GlobalUserPage Extension (nicht installiert)

    -- === 2. Variablen (Variables) ===
    -- Geben dynamische Werte aus, meist {{WORT}}

    -- 2.1. Zeit und Datum (Aktuell)
    ["Jahr"]                           = {"{{CURRENTYEAR}}", true},
    ["Monat2Stellig"]                  = {"{{CURRENTMONTH2}}", true},
    ["Monat1Stellig"]                  = {"{{CURRENTMONTH1}}", true},
    ["Monatsname"]                     = {"{{CURRENTMONTHNAME}}", true},
    ["Tag2Stellig"]                    = {"{{CURRENTDAY2}}", true},
    ["Tag1Stellig"]                    = {"{{CURRENTDAY}}", true},
    ["Wochentagsname"]                 = {"{{CURRENTDAYNAME}}", true},
    ["Wochennummer"]                   = {"{{CURRENTWEEK}}", true},
    ["Uhrzeit"]                        = {"{{CURRENTTIME}}", true},
    ["Timestamp"]                      = {"{{CURRENTTIMESTAMP}}", true},
    
    -- 2.2. Seiteninformationen (Aktuell)
    ["Seitenname"]                     = {"{{PAGENAME}}", true},
    ["VollstaendigerSeitenname"]        = {"{{FULLPAGENAME}}", true},
    ["Namensraum"]                     = {"{{NAMESPACE}}", true},
    ["Basisname"]                      = {"{{BASEPAGENAME}}", true},
    ["UnterseiteName"]                 = {"{{SUBPAGENAME}}", true},
    ["Hauptartikelname"]               = {"{{ROOTPAGENAME}}", true},
    ["SeitenID"]                       = {"{{PAGEID}}", true},
    ["SeitenGroesse"]                  = {"{{PAGESIZE}}", true},
    ["GeschützterStatus"]              = {"{{PROTECTIONLEVEL:edit}}", true},
    
    -- 2.3. Versionsinformationen
    ["RevisionsID"]                    = {"{{REVISIONID}}", true},
    ["RevisionsDatum"]                 = {"{{REVISIONDAY2}}", true},
    ["RevisionsBenutzer"]              = {"{{REVISIONUSER}}", true},
    ["VersionsURL"]                    = {"{{REVISIONURL}}", true},

    -- 2.4. Statistik und Site
    ["SiteName"]                       = {"{{SITENAME}}", true},
    ["WikiVersion"]                    = {"{{CURRENTVERSION}}", true},
    ["Anzahl_Artikel"]                 = {"{{NUMBEROFARTICLES}}", true},
    ["Anzahl_Seiten"]                  = {"{{NUMBEROFPAGES}}", true},
    ["Anzahl_Benutzer"]                = {"{{NUMBEROFUSERS}}", true},
    ["Anzahl_Dateien"]                 = {"{{NUMBEROFFILES}}", true},
    ["AnzahlViews"]                    = {"{{NUMBEROFVIEWS}}", false},  -- deaktiviert ab > V1.24
    
    -- 2.5. Lokalisierung und Pfade
    ["Sprache_Inhalt"]                 = {"{{CONTENTLANGUAGE}}", true},
    ["Artikel_Pfad"]                   = {"{{ARTICLEPATH}}", true},
    ["Skript_Pfad"]                    = {"{{SCRIPTPATH}}", true},

    -- === 3. Parserfunktionen (Parser Functions) ===
    -- Nehmen Parameter entgegen, meist {{#WORT:...}} oder {{WORT:...}}

    -- 3.1. Standard-MediaWiki-Funktionen
    ["DefaultSortierSchlüssel"]        = {"{{DEFAULTSORT:}}", true},
    ["TitelAnzeigen"]                  = {"{{DISPLAYTITLE:}}", true},
    
    -- 3.2. Pfadfunktionen
    ["LokaleURL"]                      = {"{{localurl:}}", true},
    ["VolleURL"]                       = {"{{fullurl:}}", true},
    ["DateiPfad"]                      = {"{{filepath:}}", true},
    ["URL_Kodieren"]                   = {"{{urlencode:}}", true},
    ["NamensraumName"]                 = {"{{ns:}}", true},
    
    -- 3.3. Extension:ParserFunctions (Basis)
    ["Bedingte_Ausgabe"]               = {"{{#if:}}", true},
    ["Bedingter_Vergleich"]            = {"{{#ifeq:}}", true},
    ["Bedingter_Ausdruck"]             = {"{{#ifexpr:}}", true},
    ["Fallunterscheidung"]             = {"{{#switch:}}", true},
    ["Ausdruck_Berechnen"]             = {"{{#expr:}}", true},

    -- 3.4. Extension:Scribunto/Lua (für Konsistenz)
    ["Lua_Invoke"]                     = {"{{#invoke:}}", true},
}

return data