Skriptbibliothek mit JavaScript-Funktionen, um Analyse und Formatierung von ISBN zu unterstützen.

Es werden die Bibliotheken von WikiSyntaxTextMod (WSTM) mitbenutzt und verfügbar gemacht.

Installation Bearbeiten

Programmierer müssen auf die ordnungsgemäße Installation dieses Skripts warten, bevor irgendeine Funktion benutzt werden kann. Das erfordert zwei Schritte.

if ( ! mw.loader.getState( "ext.gadget.isbnLib" ) ) {
   mw.loader.state( { "ext.gadget.isbnLib": "loading" } );
   mw.loader.load( "https://en.wikipedia.org/w/index.php?"
                   + "title=User:PerfektesChaos/js/"
                   + "isbnLib/r.js"
                   + "&bcache=1&maxage=604800"
                   + "&action=raw&ctype=text/javascript" );
}
mw.hook( "isbnLib.ready" ).add( mainTask );

Dieser Vorgang wäre nicht sinnvoll, wenn er bereits anderswo erfolgt war. Deshalb wird zunächst der state (Status) überprüft. Ein anderes Gadget, das ebenfalls die Skriptbibliothek verwendet, könnte das bereits vorgenommen haben. Um unnötige Parallelarbeit zu vermeiden, wird der state sofort auf "loading" gesetzt.

Eine Callback-Funktion (hier mainTask) wird aufgerufen, sobald nicht nur die Skriptbibliothek selbst geladen worden ist, sondern auch alle Komponenten bereit sind.

function mainTask(application) kann einen Parameter auswerten. Das ist das Anwendungsobjekt für die Skriptbibliothek. Es müsste mit mw.libs.isbnLib identisch sein, solange derartige Strukturen unterstützt werden.

API Bearbeiten

Nach Auslösen des mw.hook isbnLib.ready können Funktionen aufgerufen werden. Dabei ist der von mw.hook übergebene Parameter das Anwendungsobjekt und müsste mit mw.libs.isbnLib identisch sein.

Die Funktionen sind Komponenten des Anwendungsobjekts.

.factory() Bearbeiten

Schaffe eine Zeichenkette, mit der sich ein RegExp zum Auffinden auch mangelhaft formatierter ISBN bilden lässt.

Aufruf .factory(attribute)
Parameter Type Bedeutung
attribute boolean true: URL von der Suche ausnehmen
Rückgabewert
  • string – Zeichenkette für einen RegExp zum Auffinden von ISBN

.flip() Bearbeiten

Ermittle zur ISBN-10 das Gegenstück ISBN-13, oder die ISBN-13 zur ISBN-10.

Aufruf .flip(adjust)
Parameter Type Bedeutung
adjust string ISBN, formatiert oder nicht, auch mit Nicht-ASCII-Zeichen
Rückgabewert
  • string – Gegenstück zu adjust
  • falseadjust ist ungültig
  • null – Benötigtes Modul noch nicht vorhanden

.focus() Bearbeiten

Ermittle die mutmaßliche Sprache zur ISBN.

Aufruf .focus(about)
Parameter Type Bedeutung
about string ISBN, formatiert oder nicht, auch mit Nicht-ASCII-Zeichen
Rückgabewert
  • string – Leerzeichen-getrennte Liste eines oder mehrerer Codes nach ISO 639
  • false – nicht ermittelbar
  • null – Benötigtes Modul noch nicht vorhanden

.format() Bearbeiten

Formatiere ISBN.

Aufruf .format(adjust,additional)
Parameter Type Bedeutung
adjust string ISBN, auch mit Nicht-ASCII-Zeichen
additional boolean
optional
trueArray statt string zurückgeben
Rückgabewert
  • string – ASCII-formatierte adjust
  • Array – Zwei Elemente; [0] ist 10 oder 13; [1] ist ASCII-formatierte adjust
  • falseadjust ist ungültig
  • null – Benötigtes Modul noch nicht vorhanden

Code und Stammseite Bearbeiten

Die Stammseite ist en:User:PerfektesChaos/js/isbnLib mit:

Quellcode
ResourceLoader
  • ext.gadget.isbnLib
  • Dependencies:
    • user:PerfektesChaos/WikiSyntaxTextMod/S
    • user:PerfektesChaos/WikiSyntaxTextMod/U
mw.libs isbnLib
mw.hook isbnLib.ready