Benutzer:PerfektesChaos/js/isbnLib
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 | Quelltext 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 | Quelltext 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 | Quelltext 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 |
|
.flip()
[Bearbeiten | Quelltext 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 |
|
.focus()
[Bearbeiten | Quelltext 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 |
|
.format()
[Bearbeiten | Quelltext bearbeiten]Formatiere ISBN.
Aufruf | .format(adjust,additional)
| ||
---|---|---|---|
Parameter | Type | Bedeutung | |
adjust
|
string
|
ISBN, auch mit Nicht-ASCII-Zeichen | |
additional
|
boolean optional |
true – Array statt string zurückgeben
| |
Rückgabewert |
|
Code und Stammseite
[Bearbeiten | Quelltext bearbeiten]Die Stammseite ist en:User:PerfektesChaos/js/isbnLib mit:
Quellcode |
|
ResourceLoader |
|
mw.libs
|
isbnLib
|
mw.hook
|
isbnLib.ready
|