Zum Inhalt springen

Helmstedt-Wiki:Lua/Modul/WLink/de

aus Helmstedt-Wiki, der freien Enzyklopädie über den Landkreis Helmstedt

{{#invoke:Vorlage:LuaModuleDoc|nav |langsRequest = |noCat = |noHint = |forkedGlobal = 0 |categoryDocs = Helmstedt-Wiki:Lua/Modul |categoryWikiData = Helmstedt-Wiki:Lua/Modul/Global via WikiData |categoryWikiDataChild = Helmstedt-Wiki:Lua/Modul/Global via WikiData/Kind |categoryWikiDataParent = Helmstedt-Wiki:Lua/Modul/Global via WikiData/Mutter |categoryWikiDataReplication = Helmstedt-Wiki:Lua/Modul/Global via WikiData/Abgleich |langsDefault = de en |langsMore = dsb eo fr hsb pt |nsDocs = 4 |pageDocRoot = Lua/Modul |pageErr = Helmstedt-Wiki:Lua/Modul-Navigationsfehler |pageNav = Vorlage:LuaModuleDoc/Navigation |pageTemplateInsert = Helmstedt-Wiki:Lua/Vorlagenprogrammierung |preloadCentral = Vorlage:LuaModuleDoc/preload-central |preloadRedir = Vorlage:LuaModuleDoc/preload-redir |subTest = Test |templateGlobal = LuaModuleDoc/Global }} WLink – Modul mit Funktionen für Zeichenketten im Zusammenhang mit Wiki-Verlinkungen (Wikilink-Format und URL-Format).

{{#invoke:Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}} Funktionen für Vorlagen

Alle Funktionen haben genau einen unbenannten Parameter (sinnvollerweise anzugeben). Dieser ist tolerant gegenüber Leerzeichen vor oder nach dem Inhalt. HTML-Entities sind in der Eingabe möglich und werden im Resultat aufgelöst. In der Regel handelt es sich dabei um eine Zeichenkette, in der geklammerte Verlinkungen erwartet werden; dann wird die erste Klammer weiterverarbeitet.

Der Rückgabewert ist eine leere Zeichenkette („nichts“), wenn der Parameterwert die Erwartung nicht erfüllt. Wenn ein Ergebnis vorhanden oder die Abfragebedingung wahr ist, resultiert mindestens ein Zeichen. Das Ergebnis beginnt oder endet nicht mit Leerzeichen.

ansiPercent {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Konvertiere URL mittels ANSI-Encoding statt durch UTF-8-Encoding.
Für manche Server mit Software-Format aus dem letzten Jahrhundert benötigt.
Optionaler Zusatzparameter space – Kodierung der Leerzeichen:
  • space=+ – in Query-Komponenten üblich
  • space=_ – wie im Wiki
  • Standard: %20
formatURL {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Formatiere eine URL, ein betiteltes Weblink oder schlicht eine Domain.
  • [http://example.org/about Homepage] ergibt [http://example.org/about Homepage]
  • http://example.org/about ergibt [http://example.org/about example.org/about]
  • example.org ergibt [http://example.org/ example.org]
Textzusätze außerhalb dieser Formate werden durchgereicht.
getArticleBase {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle den generischen Seitentitel, ohne Fragment oder Klammerausdruck eines „Klammerlemma“.
Benutze den momentanen Seitentitel, falls nicht angegeben.
getBaseTitle {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle in einer Unterseite das letzte Segment des Seitentitels, ohne Fragment.
getEscapedTitle {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Bilde einen als Linktitel geeigneten Text.
Die eckigen Klammern und Pipe [|] sowie Quelltext-Zeilenumbrüche werden darstellbar gemacht.<ref>Ein ähnlicher Effekt ließe sich auch durch Einschluss des Linktitels in <nowiki> erreichen; dann wären allerdings Kursiv- und Fettschrift sowie HTML-Elemente nicht mehr funktional.</ref>
getExtension {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle die „Namenserweiterung“ von Mediendateien.
Das Ergebnis wird in Kleinschreibung ohne führenden Punkt dargestellt.
getFile {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle den Dateinamen.
Die Eingabe kann eine geklammerte Verlinkung oder nur ein Dateiname sein. Sie ist nur gültig, wenn sowohl eine zulässige Bezeichnung des Dateinamensraum wie auch eine „Namenserweiterung“ vorhanden ist.
Das Ergebnis ist der Titel der Datei ohne Namensraum.
getFragment {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle das originale (nicht dekodierte) Fragment nach #.
Kein Resultat, wenn Fragment leer oder nicht vorhanden.
getLanguage {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle den Sprachbezeichner des Projekts.
getLinktextProblem {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Welches Problem hat dieser als Linktext vorgesehene Text?
] → eckige Klammern; \n → Zeilenumbruch; <wiki> → unerlaubte HTML-Elemente; ISBN PMID RFC
getNamespace {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle die Nummer des Namensraums.
getNamespaced {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Generiere einen Seitennamen aus Namensraumbezeichner und Link oder Seitentitel oder Seitenname mit Namensraum.
  1. Namensraumbezeichner beliebiger Art
  2. Seitentitel oder Seitenname mit Namensraum oder Wikilink
getPlain {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Löse alle Verlinkungen im Text auf und ersetze durch die Linktitel.
getProject {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle den Projektbezeichner (nur innerhalb der Wikifarm) in empfehlenswerter Kurzform.
getTalkPage {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle die zugehörige Diskussionsseite, falls es eine geben kann, bzw. diese Diskussionsseite selbst.
getTarget {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle das erste Linkziel (Wikilink oder URL).
getTargetPage {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle den Seitennamen zur ersten Verlinkung (Seitenname oder URL der Seite)
Identisch mit getTarget, falls kein Fragment.
getTitle {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ermittle den ersten Linktitel (Wikilink oder URL), oder sonst das Linkziel eines Wikilinks.
getWeblink {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Generiere formatiertes Weblink (in eckigen Klammern) aus einer Ressourcen-URL
getWikilink {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Generiere robustes standardisiertes Wikilink (in eckigen Klammern)
  1. Linkziel, Seitenname, Text mit einem Wikilink
  2. abweichender Linktext (optional)
isBracketedLink {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das eine geklammerte Verlinkung?
isBracketedURL {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das eine geklammerte URL?
isCategorization {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das eine wirksame Kategorisierung?
isExternalLink {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das eine URL?
isInterlanguage {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das ein Interlanguage?
isInterwiki {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das ein Interwiki-Link innerhalb der Wikifarm, einschließlich Interlanguage?
isMedia {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das eine Medieneinbindung?
isTalkPage {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das eine Diskussionsseite?
isTitledLink {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das eine betitelte Verlinkung?
isValidLink {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das eine Verlinkung?
isValidLinktext {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Ist das als Linktext geeignet?
isWikilink {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Enthält das ein Wikilink?
pageLink {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Robustes Ziel für ein Wikilink auf eine Seite; beginnt nicht mit *;:#
failsafe {{#invoke
Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
Versionsbezeichnung (lokal): {{#invoke:WLink|failsafe}}
Optionaler Zusatzparameter:
  • 1 – Mindestversionsbezeichnung oder wikidata oder ~
{{#invoke:WLink|failsafe}} ergibt {{#invoke:WLink|failsafe}}
Mit Angabe eines Parameters als Datum im ISO-Format wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
  • {{#invoke:WLink|failsafe|2001-01-01}} ergibt: »{{#invoke:WLink|failsafe|2001-01-01}}«
  • {{#invoke:WLink|failsafe|2099-01-01}} ergibt: »{{#invoke:WLink|failsafe|2099-01-01}}« – leer, falls Mindestversionsbezeichnung nicht erfüllt
Ist dieser Zusatzparameter das Schlüsselwort wikidata, so ist der Wert die auf Wikidata registrierte Versionsbezeichnung ({{#invoke:WLink|failsafe|wikidata}}) oder lokal, falls dort keine gefunden.
  • Ist der Zusatzparameter das Zeichen ~, so ist das Ergebnis leer, falls Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung besteht ({{#invoke:WLink|failsafe|~}}).
Rückgabewert:
  • Leer, falls Mindestversionsbezeichnung nicht erfüllt, oder Übereinstimmung mit Wikidata
  • Versionsbezeichnung (auf Wikidata registriert:{{#invoke:WLink|failsafe|wikidata}}) bei wikidata, oder lokal falls dort keine gefunden, bzw. leer wenn synchronisiert

Beispiele (Testseite)

Eine Testseite illustriert praktische Beispiele.

{{#invoke:Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}} Funktionen für Lua-Module

Alle oben dokumentierten Funktionen können auch über require() in andere Module eingebunden werden: <syntaxhighlight lang="lua"> local lucky, WLink = pcall( require, "Module:WLink" ) if type( WLink ) == "table" then

   WLink = WLink.WLink()

else

   -- Fehlerfall; WLink enthält Fehlermeldung
   return "" .. WLink .. ""

end </syntaxhighlight> Danach stehen zur Verfügung:

  • WLink.ansiPercent(story, space)
  • WLink.formatURL()
  • WLink.getArticleBase()
  • WLink.getBaseTitle()
  • WLink.getEscapedTitle()
  • WLink.getExtension()
  • WLink.getFile()
  • WLink.getFragment()
    false, wenn nicht vorhanden; aber "" wenn Fragment leer.
    Kein # am Anfang des Ergebnisses.
  • WLink.getLanguage()
  • WLink.getLinktextProblem()
  • WLink.getNamespace()
  • WLink.getNamespaced()
  • WLink.getPlain()
  • WLink.getProject()
  • WLink.getTalkPage()
  • WLink.getTarget()
  • WLink.getTargetPage()
  • WLink.getTitle()
  • WLink.getWeblink()
  • WLink.getWikilink()
  • WLink.isBracketedLink()
  • WLink.isBracketedURL()
  • WLink.isCategorization()
  • WLink.isExternalLink()
  • WLink.isInterlanguage()
  • WLink.isInterwiki()
  • WLink.isMedia()
  • WLink.isTalkPage()
  • WLink.isTitledLink()
  • WLink.isValidLink()
  • WLink.isValidLinktext()
  • WLink.isWeblink()
  • WLink.isWikilink()
  • WLink.pageLink(attempt, appear, assure)
    Liefert robustes Wikilink auf eine Seite (ohne Klammern)
    • attempt – mutmaßlicher Link; string oder table gemäß .wikilink()
    • appear(optional) Linktext string oder true
    • assure(optional) Methode zum Schutz gegen Vorlagensyntax: URL oder WIKI
  • WLink.pageTarget(attempt, assure)
    Liefert robustes standardisiertes Ziel für ein Wikilink
    • attempt – mutmaßlicher Link; string oder table gemäß .wikilink()
    • assure(optional) Methode zum Schutz gegen Vorlagensyntax: URL oder WIKI
  • WLink.wikilink() {{#invoke:Vorlage:Anker|f |errCat=Helmstedt-Wiki:Vorlagenfehler/Vorlage:Anker |errHide=1}}
    Liefert table mit den Komponenten des Wikilinks, sonst false.
    Komponenten können sein, falls angegeben:
    • lead – Führender Doppelpunkt vorhanden und erforderlich, falls true
    • project – Projekt-Interwiki (standardisierte Abkürzung)
    • lang – Bekannte Sprachversion (Kleinbuchstaben)
    • ns – Nummer des Namensraums
    • space – Standardname des Namensraums
    • title – Seitentitel wie vorgefunden; mindestens eine leere Zeichenkette
  • WLink.failsafe(atleast)
    1. atleast
      optional
      nil oder Mindestversion oder "wikidata" oder ~ für Synchronisation
    Rückgabewert: Boolesch oder Zeichenkette

Im Erfolgsfall geben die WLink.get*() eine Zeichenkette zurück, die WLink.is*() den Wert true (sofern nicht anders angegeben); bei Misserfolg jeweils false.

Verwendung

Allgemeine Bibliothek; nicht eingegrenzt.

Abhängigkeiten

Installation auf anderen Projekten

Siehe englischsprachige Dokumentation.

Siehe auch

  • URLutil – allgemeine Funktionalitäten speziell für URL.

Anmerkungen

<references />