„Wikipedia:Lua/Modul/URIutil/de“ – Versionsunterschied
KKeine Bearbeitungszusammenfassung |
K Textersetzung - „URL = https://de.wikipedia.org/wiki/“ durch „URL = {{int:Gast-de.wikipedia-url}}“ |
||
| Zeile 1: | Zeile 1: | ||
<noinclude>{{aewi.Seitenordnung | <noinclude>{{aewi.Seitenordnung | ||
| Quelle = Wikipedia | | Quelle = Wikipedia | ||
| URL = | | URL = {{int:Gast-de.wikipedia-url}} | ||
| Zusatz = Wikipedia: | | Zusatz = Wikipedia: | ||
| Obereinordnung2 = Kategorie:•Lua, Modul, URIutil, de | | Obereinordnung2 = Kategorie:•Lua, Modul, URIutil, de | ||
Version vom 19. September 2026, 06:58 Uhr
| Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
| Modul | Deutsch | English
|
Modul: | Dokumentation | ||
URIutil – Modul mit Funktionen für Zeichenketten im Zusammenhang mit Ressourcen-Bezeichnern. Gemeint ist hier nicht die Teilmenge, die als Locator eine URL bildet (siehe dazu URLutil). Vielmehr sind eindeutige Schlüsselnummern für Dokumente aller Art behandelt: DOI, ISBN, ISSN, URN; daneben auch nationale und andere Codes wie LCCN, GTIN/EAN, DNB, GND (PND), ZDB, PPN, PMID, die von öffentlichen Institutionen vergeben werden.
Funktionen für Vorlagen
Alle Funktionen haben genau einen unbenannten Parameter. Dieser ist tolerant gegenüber umgebenden Leerzeichen usw. Keine vorangestellten Schlüssel wie „DOI“ oder „ISBN“.
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.
- coreISSN
- 7 signifikante Ziffern einer 8- oder 13-stelligen ISSN
- formatISBN
- Gliederung durch Bindestriche; Großschreibung des X.
- formatISSN
- Gliederung durch Bindestriche; Großschreibung des X.
- Optional: zweiter Parameter 8 oder 13 für Ausgabeformat; sonst wie vorgefunden.
- isDNBvalid
- Ist ein Bezeichner der DNB (auch GND, IDN und ZDB) gültig, einschließlich Prüfziffer?
- GND sind die mindestens 9-stelligen, nicht die früheren 8-stelligen SWD und GKD mit durch Bindestrich abgetrennter Prüfziffer.
- Wenn auf eine bis zu 7 Ziffern lange Zahl eine durch Bindestrich abgetrennte Prüfziffer folgt, wird nach den Regeln vor 2012 eine Validierung für SWD und GKD versucht.
- nichts – unzulässig
- Anzahl der Ziffern oder
2011– gültig
- isDOI
- Ist es ein syntaktisch richtiger Digital Object Identifier?
- Nummer der Organisation – ja
- nichts – unzulässig
- isHandle
- Ist es ein syntaktisch richtiges Handle?
- Nummer der Organisation – ja
- nichts – unzulässig
- isEscValid
- Ist das Prozent-Encoding richtig gehandhabt?
- nichts – keine Beanstandungen
- Zeichenkette – beanstandete Sequenz
- isGTINvalid
- Ist es eine gültige GTIN (European Article Number), einschließlich Prüfziffer?
- Anzahl der Ziffern.
- nichts – unzulässig
- GTIN sind auch die ISBN-13, ISSN-13 und vielleicht einmal AV-Medien.
- isISBN
- Ist es eine syntaktisch richtige ISBN?
10– wenn 10 Ziffern und Bindestriche; auchxXam Ende13– wenn 13 Ziffern und Bindestriche; beginnend mit Bookland- nichts – ansonsten
- isISBNvalid
- Ist es eine formal richtige ISBN, einschließlich Prüfziffer?
10oder13– ja- nichts – nein
- isISSNvalid
- Ist es eine formal richtige ISSN, einschließlich Prüfziffer?
8oder13– ja- nichts – nein
- isLCCN
- Ist es eine syntaktisch richtige LCCN?
- Zeichenkette – erkannt, ohne Trennzeichen
- nichts – unzulässig
- linkDNBopac
- Geklammertes Weblink auf DNB-Portal (OPAC)
- linkDOI
- Geklammertes Weblink auf DOI-Resolver
- linkHandle
- Geklammertes Weblink auf Handle
- linkISBN
- Geklammertes Wikilink auf Booksources mit vorangestelltem Schlüsselwort ISBN und
formatISBN(auch bei syntaktisch falschen Angaben)
- linkISSN
- Geklammertes Weblink auf Zeitschriftendatenbank mit vorangestelltem Schlüsselwort ISSN und
formatISSN(auch bei syntaktisch falschen Angaben) class="plainlinks-print"wird nicht veranlasst.- linkLCCN
- Geklammertes Weblink auf die Library of Congress mit vorangestelltem Schlüsselwort LCCN
- linkPMID
- Geklammertes Weblink auf PubMed mit vorangestelltem Schlüsselwort PMID
- linkURN
- Geklammertes Weblink auf URN-Resolver
- Optional: zweiter Parameter erlaubt spezifischen Resolver.
- mayDOI
isDOIoder leer- Nummer der Organisation – ja
0– leer- nichts – unzulässig
- mayHandle
isHandleoder leer- Nummer der Organisation – ja
0– leer- nichts – unzulässig
- mayISBN
isISBNoder leer10oder13– ja0leer- nichts – unzulässig
- mayISSN
isISSNvalidoder leer8oder13– ja0– leer- nichts – unzulässig
- mayLCCN
isLCCNoder leer- Zeichenkette – erkannt, ohne Trennzeichen
0– leer- nichts – unzulässig
- mayURI
- URI allgemein oder leer; keine Leerzeichen im Inneren, isEscValid
- Optional: zweiter Parameter
1erlaubt nur ASCII (keine IRI). - Zeichenkette – beanstandete Sequenz
- nichts – keine Beanstandungen
- Optional: zweiter Parameter
- mayURN
- Zulässiger URN oder leer
- nichts – keine Beanstandungen
- Zeichenkette – beanstandeter Ausschnitt
- plainISBN
- Reine ISBN nur mit Ziffern (und X); 10 oder 13 Zeichen.
- Geeignet für Wikipedia:BibRecord.
- targetISSN
- Geklammertes Weblink auf Zeitschriftendatenbank (ohne vorangestelltes Schlüsselwort ISSN) und
formatISSN(auch bei syntaktisch falschen Angaben)- Optional: zweiter Parameter
1erlaubt ungültige Prüfziffer.
- Optional: zweiter Parameter
class="plainlinks-print"wird nicht veranlasst.- uriDOI
- Wie
linkDOImit vorangestelltem Schemadoi:- Optional:
link=0– nicht das Schemadoi:auf Digital Object Identifier verlinken wie:doi:
- Optional:
- uriHandle
- Wie
linkHandlemit vorangestelltem Schemahdl: - uriURN
- Wie
linkURNmit vorangestelltem Schemaurn: - failsafe
Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung
- sicherzustellen, dass eine von einer Vorlage oder einem Modul benötigte Funktion in der lokalen Kopie eines Bibliotheksmoduls vorhanden ist, und ggf. auch in einer erforderlichen Mindestversion;
- die globale Aktualisierung und Verknüpfung von Modulen über Wikidata zu verwalten.
Die Failsafe-Schnittstelle liegt sowohl auf Ebene der Vorlagen wie auch in direktem Lua-Zugriff vor.
Die Funktionen sind im Einzelnen (nicht alle werden bereits überall in vollem Umfang unterstützt):
| Wert | Ergebnis | aktuell |
|---|---|---|
nichtsfalse
|
lokale Version | »2022-06-04« |
| Mindestversion | Mindestversionsbezeichnung Datum im ISO-Format Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
|
|
wikidata
|
Versionsbezeichnung der globalen Mutter (d:Q19644443)
|
»2022-06-04« |
item
|
ID des Wikidata-Items
|
»Q19644443« |
~
|
Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
|
»2022-06-04« |
@
|
Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
|
|
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false; andernfalls die angegebene Zeichenkette.
| ||
Optionale Parameter
link=
Bei den Funktionen link* und uri* wird das vorangestellte Schlüsselwort/Schema verlinkt auf den mutmaßlich entsprechenden enzyklopädischen Artikel. Der Parameterwert kann einen alternativen Seitentitel spezifizieren; oder durch link=0 kann die Verlinkung unterdrückt werden.
nbsp=
Bei den Funktionen link* wird das vorangestellte Schlüsselwort abgetrennt durch geschütztes Leerzeichen; durch nbsp=0 kann ein einfaches Leerzeichen erzwungen werden.
Markierung fehlerhafter Codes
Bei den Funktionen link* und uri* wird fehlerhaften Codes eine class="invalid-ISBN" usw. zugeordnet. Diese mag dann benutzerspezifisch oder als Gadget zur Hervorhebung benutzt werden, etwa mittels eines roten Rahmens um den Code.
.invalid-ISBN,
.invalid-ISSN {
border: solid 2px #FF0000;
}
Beispiele (Testseite)
Eine Testseite illustriert praktische Beispiele.
Funktionen für Lua-Module
Alle oben dokumentierten Funktionen können auch über require() in andere Module eingebunden werden:[1]
local lucky, URIutil = pcall( require, "Modul:URIutil" )
if type( URIutil ) == "table" then
URIutil = URIutil()
else
-- Fehlerfall; URIutil enthält Fehlermeldung
return "<span class=\"error\">" .. URIutil .. "</span>"
end
Danach stehen zur Verfügung:
- URIutil.coreISSN( attempt )
- URIutil.formatISBN( attempt )
- URIutil.formatISSN( attempt, achieve )
- URIutil.isDNBvalid( attempt )
- URIutil.isDOI( attempt )
- URIutil.isEscValid( attempt )
- URIutil.isGTINvalid( attempt )
- URIutil.isHandle( attempt )
- URIutil.isISBN( attempt )
- Zweiter Rückgabewert: table mit Komponenten der ISBN; number mit Fehlercode
- URIutil.isISBNvalid( attempt )
- Zweiter Rückgabewert: table mit Komponenten der ISBN; number mit Fehlercode
- URIutil.isISSNvalid( attempt )
- URIutil.isLCCN( attempt )
- URIutil.linkDOI( attempt )
- URIutil.linkHandle( attempt )
- URIutil.linkISBN( attempt, allow, abbr, adhere, alert )
- URIutil.linkISSN( attempt, allow, abbr, adhere, alert )
- URIutil.linkLCCN( attempt )
- URIutil.linkPMID( attempt )
- URIutil.linkURN( attempt, alternate )
- URIutil.mayDOI( attempt )
- URIutil.mayHandle( attempt )
- URIutil.mayISBN( attempt )
- URIutil.mayISSN( attempt )
- URIutil.mayLCCN( attempt )
- URIutil.mayURI( attempt, ascii )
- URIutil.mayURN( attempt )
- URIutil.plainISBN( attempt )
- URIutil.targetISSN( attempt, allow, any1, any2, alert )
- URIutil.uriDOI( attempt )
- URIutil.uriHandle( attempt )
- URIutil.uriURN( attempt, alternate )
- URIutil.failsafe( atleast )
Die Eingabeparameter sind jeweils:
attempt– string mit dem Code
Optional:
achieve– number8oder13für Ausgabeformat; sonst wie vorgefunden.allow– true erlaubt ungültige Prüfzifferalert– string mit Wartungskategorieabbr– true oder string verlinkt vorangestellte AbkürzungISBN/ISSN.adhere– true benutzt statt einfachem Leerzeichen.ascii– true erlaubt nur ASCII (keine IRI).
Im Erfolgsfall geben die meisten Funktionen eine Zeichenkette zurück, die URIutil.is*() die angegebene number oder string; bei Misserfolg jeweils false.
Verwendung
Allgemeine Bibliothek; nicht eingegrenzt.
Abhängigkeiten
- Modul:URIutil/config – projektspezifische Anpassungen
- Modul:URIutil/isbn – Definition der ISBN-Gruppierung
- Modul:URIutil/urn – Definition der URN-Namensräume und Resolver
Installation auf anderen Projekten
Siehe englischsprachige Dokumentation.
Anmerkungen
- ↑ Statt
URIutil = URIutil()
wurde früher auch angegeben:
URIutil = URIutil.URIutil()
Dies sollte nach und nach vereinfacht werden.