Benutzer:Akkakk/autoInformation.js
Zur Navigation springen
Zur Suche springen
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// gerüst geklaut von [[Benutzer:TMg/autoFormatter.js]]
// <nowiki>
// wer die technischen möglichkeiten hat und weiß was er tut, darf diese seite auch bearbeiten.
/**
* Blendet eine „Auto-Information“-Funktion über dem Bearbeitungsfenster ein, die
* die Vorlage Information einfügt.
* Eine ausführliche Beschreibung ist nicht auf der Diskussionsseite zu finden.
*/
function doAutoInformation(a)
{
var e = document.forms["editform"].elements;
var b = e["wpTextbox1"];
var t = b.value;
var i_b = ""; //variablen für die felder der vorlage information
var i_q = "";
var i_u = "";
var i_d = "";
var i_g = "";
var i_v = "";
var i_a = "";
var i_d_f = ""; //fallback-datum
var eigene_quellen = "(selbst erstellt|selbst gezeichnet|selbst f?p?h?otograf?p?h?iert|[Ee]igenes [Bb]ild|eigene Zeichnung|von mir gezeichnet|aus englischer? Wiki|selbst aufgenommen|eigene Aufnahme)\.?";
var genehmigungen = "(Public Domain|GNU-FDL|gnu-fdl|gemeinfrei|GFDL|GNU FDL|gfdl|Copyright \\[\\[GNU FDL\\]\\]|\\[\\[GNU FDL\\]\\]|\\[\\[GFDL\\]\\])";
var lizenzen = "Bild-(GFDL|GFDL-Neu|frei|PD-alt|PD-alt-100|CC-by-sa/[0-9.]*/?[a-z]*|CC-by/[0-9.]*/?[a-z]*|By)";
var quelle_urheber = "Roland Nonnenmacher|Roland Wellenhöfer|Anton \\(rp\\)|D\\.Barthel|Ralf Roletschek|Denis Barthel|Stahlkocher|Walter J.Pilsak|Walter J. Pilsak, Waldsassen|keichwa|Hans Peter Schaefer|Juliana da Costa José";
///////////////// text vorbereiten /////////////////
t = t.replace(/ *\(für (die GNU[- ]FDL|Public Domain)\) */g, "");
t = t.replace(/== (description|batch|source|date|author|permission) ==\n\n?(.*)/g, "* $1: $2\n"); // für die batch-uploads
t = t.replace(/\* (description|batch): \n/, "");
t = t.replace(/\nub\. *(.*[^ ]) *\n/, "\nu.[[Benutzer:$1]]\n"); //magic ub.
t = t.replace(/\n(uq|qu)\. *(.*[^ ]) *\n/, "\nu.$2\nq.$2\n"); //magic uq, qu
//t = t.replace(/([12][90]..) selbst (erstellt|fotografiert)/, "d.$1\nq.$1 selbst $2\nu.[[Benutzer:]]\n"); //sonderbehandlung (Morty)
var re = new RegExp("\n"+genehmigungen+" ?[-–,;(] ?"+eigene_quellen+"\\)?\n"); //für einzeiler
t = t.replace(re, "\ng.$1\nq.$2\n");
re = new RegExp("\n[(, ]*"+eigene_quellen+"[-–,;] "+genehmigungen+"[)]*\n");
t = t.replace(re, "\nq.$1\ng.$2\n");
re = new RegExp("[-–,;\n] ?"+genehmigungen+"\n");
//t = t.replace(re, "\ng.$1\n");
re = new RegExp("[-–,;\n] ?"+eigene_quellen+"\n");
//t = t.replace(re, "\nq.$1\n");
t = t.replace(/\nDer Urheber ist: *\n/, "\nDer Urheber ist:"); //der urheber ist manchmal erst in der nächsten zeile
t = t.replace(/([^ ]) *(\{\{.*\}\})/g, "$1\n$2"); //vorlagen sollen alleine auf einer zeile stehen
re = new RegExp("\\{\\{"+lizenzen+"\\}\\} *([^ ][^ ]+)"); //falls urheber nach lizenz angegeben
t = t.replace(re, "{{Bild-$1}}\nder Urheber ist:$2");
t = t.replace(/(\{\{.*\}\}) *([^ ])/g, "$1\n$2");
t = t.replace(/== (Beschreibung|Beskrivelse|Description).* ==\n/, ""); //überschrift Beschreibung entfernen
t = t.replace(/^bqud\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\nu:$3\nd:$4\n"); //magic bqud
t = t.replace(/^bqgu\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\ng:$3\nu:$4\n"); //magic bqgu
t = t.replace(/^bqu\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\nu:$3\n"); //magic bqu
t = t.replace(/^bqd\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\nd:$3\n"); //magic bqd
t = t.replace(/^bqg\n[ *]*(.*)\n[ *]*(.*)\n[ *]*(.*)\n/, "b:$1\nq:$2\ng:$3\n"); //magic bqg
/////////////// sonderbehandlungen ////////////////////
//t = t.replace(/Eigene Graphik/, "\nq.Eigene Graphik");
t = t.replace(/ *- *selbst fotografiert *\(Klaus Graf\) ([0-9.]*) *-? */, "\nq.selbst fotografiert\nu.Klaus Graf\nd.$1\n"); //sonderbehandlung für klaus graf
//t = t.replace(/\n(aufganommen|gezeichnet) von \[\[Benutzer:/, "\nq.$1 von [[Benutzer:");
//t = t.replace(/<br>/g, "\n");
//t = t.replace(/^PD AK/, "g:PD\nb:AK");
t = t.replace(/^Autor D.Barthel GNU FDL\n/, "u.Autor D.Barthel\ng.GNU FDL\n");
//t = t.replace(/,? ?([12][90]..) selbst fotografiert(, GFDL)?/, "\nd.$1\nq.selbstfotografiert\ng.$2\n");
//t = t.replace(/\* Fotograf: selbst/, "q:Fotograf: selbst\nu.[[Benutzer:Staro1]]");
t = t.replace(/Selbst fotografiert, (Jänner|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember) ([12][90]..)/, "q.Selbst fotografiert\nd.$1 $2"); // (Lienhard Schulz)
t = t.replace(/\nEigenes Photo; *(.*); *(Jänner|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember) *([12][90]..).?\nQuelle ERWEH\n/, "\nq.Eigenes Photo\nub.ERWEH\nb.$1\nd.$2 $3\n"); // (ERWEH)
/// svg-vorlage nach unten verschieben, für das beschreibungs-fallback ////
var re_svg = new RegExp("(\\{\\{(In SVG konvertieren|JetztSVG|SVG)\\|?[a-zA-Z]*\\}\\})\n*");
if(t.match(re_svg)){
var svg = RegExp.$1;
t = t.replace(re_svg, "");
t = t.replace(/\{\{Bild-/, svg+"\n\n{{Bild-");
if(! t.match(re_svg)){
t = t+"\n"+svg;
}
}
////// fallback-datum sichern ////
if(t.match(/\D(([0123]?\d\.[01]?\d\.(20|19)?\d\d)|([0123]?\d?\.? *(Jänner|Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember|Frühling|Sommer|Herbst|Winter|Frühjahr��) 20\d\d))\D/)){
i_d_f = RegExp.$1; //fallback-datum
}
/////////////// daten rausholen /////////////
var re_pre = "(\\n|^)[ *'|;#]*(";
var re_post = ")[ ']*[:.,=][ '\.]*(.*)\\n";
var re_b = new RegExp(re_pre+"Beschreibung|Bildbeschreibung|Motiv|[Dd]escription|Aufnahmeobjekt|Bildgenstand|Aufnahmegegenstand|b"+re_post);
if(t.match(re_b)){
i_b += RegExp.$3; //beschreibung merken
t = t.replace(re_b, "\n"); //und im text löschen
if(i_b == "t") // für das magische t
i_b = mw.config.get( 'wgTitle' ).replace(/(.*)\..*/, "$1");
}
var re_q = new RegExp(re_pre+"[Qq]uelle|Quelle/Copyright|[Ss]ource|Bildquelle|q"+re_post);
if(t.match(re_q)){
i_q += RegExp.$3;
t = t.replace(re_q, "\n");
if(i_q == "s") // für das magische s
i_q = "selbst erstellt";
}
var re_u = new RegExp(re_pre+"Urheberi?n?|Foto|Fotograf oder Zeichner|Fotografi?n?|Zeichner|Fotograf */ *Zeichner|[Aa]uth?or|Photographe?r?|Fotograf/Urheber|Zeichner/Autor|Bildautor|Erstellt von|Zeichnung|Ersteller|Bearbeiter|Urheber der Zeichnung|Urheber des F?P?h?otos|Autor der Zeichung|Urheber und Fotograf|Fotograph|Fotografiert von|Angefertigt von|u"+re_post);
if(t.match(re_u)){
i_u += RegExp.$3;
t = t.replace(re_u, "\n");
//i_u = i_u.replace(/^ *\(für (die GNU FDL|Public Domain)\) *$/, "");
}
var re_u = new RegExp(re_pre+"[Dd]er Urheber ist"+re_post);
if(t.match(re_u)){ //für oft redundante angaben bei der lizenz
if(i_u == "")
i_u += RegExp.$3;
else if(i_u != RegExp.$3 && RegExp.$3 != "")
i_u = RegExp.$3+" / "+i_u; //wenn der urheber zweimal unterschiedlich angegeben ist
t = t.replace(re_u, "\n");
//i_u = i_u.replace(/^ *\(für (die GNU FDL|Public Domain)\) *$/, "");
}
var re_d = new RegExp(re_pre+"[Dd]atum|Datum der Aufnahme|Aufnahmedatum|[dD]ate|Aufnahmezeitpunkt|Aufnahmetag|aufgenommen am|Jahr|d"+re_post);
if(t.match(re_d)){
i_d += RegExp.$3;
t = t.replace(re_d, "\n");
}
var re_g = new RegExp(re_pre+"Genehmigung|Copyright Status|[cC]opyright|Erlaubnis|Lizenz|Lizenzstatus|[pP]ermission|Freigabe|Nutzungsrechte freigegeben|Lizenz des Bildes|g"+re_post);
if(t.match(re_g)){
i_g += RegExp.$3;
t = t.replace(re_g, "\n");
}
var re_v = new RegExp(re_pre+"[Aa]ndere Versione?n?|[oO]ther versions?|v"+re_post);
if(t.match(re_v)){
i_v += RegExp.$3;
t = t.replace(re_v, "\n");
}
var re_a = new RegExp(re_pre+"Anmerkunge?n?|Sonstiges|Hinweis|[Ss]iehe|[Ss]iehe auch|a"+re_post);
if(t.match(re_a)){
i_a += RegExp.$3;
t = t.replace(re_a, "\n");
}
var re_b = new RegExp(re_pre+"b2"+re_post); //magic b2.
if(t.match(re_b)){
i_b += "\n\n"+RegExp.$3;
t = t.replace(re_b, "\n");
}
var re_b = new RegExp(re_pre+"b3"+re_post); //magic b3.
if(t.match(re_b)){
i_b += "\n\n"+RegExp.$3;
t = t.replace(re_b, "\n");
}
var re_q = new RegExp(re_pre+"q2"+re_post); //magic q2.
if(t.match(re_q)){
i_q += "\n\n"+RegExp.$3;
t = t.replace(re_q, "\n");
}
var re_g = new RegExp(re_pre+"g2"+re_post); //magic g2.
if(t.match(re_g)){
i_g += "\n\n"+RegExp.$3;
t = t.replace(re_g, "\n");
}
/////////////////// fallbacks //////////////
var re_b_fb = new RegExp("^[ *]*([^={\n].*)\n");
if(i_b == "" && t.match(re_b_fb)){
i_b += RegExp.$1; //fallback-beschreibung: die erste zeile.
t = t.replace(re_b_fb, "");
}
if(i_b == ""){ //wenn auch das nicht hilft: dateiname
i_b += mw.config.get( 'wgTitle' ).replace(/(.*)\..*/, "$1");
}
if(i_d == ""){
i_d = i_d_f; //gespeichertes fallback-datum
}
if(i_u == "" && i_q.match(/\[\[[bB]enutzer:([^\]]*)\]\]/)){
i_u = "[[Benutzer:"+RegExp.$1+"]]"; //wenn quelle benutzer enthält: urheber
}
if(i_u == "" && i_q.match(/\[\[:en:[uU]ser:([^\]]*)\]\]/)){
i_u = "[[:en:User:"+RegExp.$1+"]]"; //wenn quelle en:user enthält: urheber
}
if(i_u == "" && i_q.match(/(von|by) (\S* ?\S*)$/) && ! RegExp.$2.match(/^http/) && ! RegExp.$2.match(/[0-9][0-9][0-9][0-9]/)){
i_u = RegExp.$2; //quelle "von X": urheber X
}
//if(i_u == "" && i_q.match(/^[a-zA-z]* ?([sS]elbst|[eE]igene)/)){
// i_u = "[[Benutzer:]]"; //wenn quelle selbst/eigene ist: urheber ist uploader
//}
re = new RegExp("([Bb]enutzer|[uU]ser|"+quelle_urheber+")");
if(i_q == "" && i_u.match(re)){
i_q = i_u; //es gibt keine quelle aber urheber ist benutzer dann quelle = urheber
}
if(t.match(/\{\{(Bild-PD-alt(-100)?|Bild-LogoSH|Bild-PD-Schöpfungshöhe)\}\}/)){
if(i_q == "")
i_q = "unbekannt"; //quelle und urheber bei manchen pd-s egal, daher unbekannt
if(i_u == "")
i_u = "unbekannt";
}
/////// unnütze infos weg ////////
var re_keine = new RegExp("^(keine|-+|\\.+|\\?)$");
if(i_b.match(re_keine)){
i_b = ""; //wenn die beschreibung nichts sinnvolles enthält: löschen
}
if(i_v.match(re_keine)){
i_v = ""; //dito andere versionen
}
if(i_a.match(re_keine)){
i_a = ""; //dito anmerkungen
}
//////////// vorlage einsetzen /////////////////
t = "{{Information\n|Beschreibung = "+i_b+"\n|Quelle = "+i_q+"\n|Urheber = "+i_u+"\n|Datum = "+i_d+"\n|Genehmigung = "+i_g+"\n|Andere Versionen = "+i_v+"\n|Anmerkungen = "+i_a+"\n}}\n\n"+t;
if(! e["wpSummary"].value.match(/\[\[Vorlage:Information\|Information\]\]/)){
if(t.match(/\{\{Information\n\}\}/)){
t = t.replace(/\{\{Information\n\}\}/, "");
e["wpSummary"].value += "[[Vorlage:Information|Information]] geändert (via [[Benutzer:Akkakk/autoInformation.js]])"; //zusammenfassung einsetzen
} else {
e["wpSummary"].value += "+[[Vorlage:Information|Information]] (via [[Benutzer:Akkakk/autoInformation.js]])"; //zusammenfassung einsetzen
}
}
//////////// quelltext aufräumen ///////////
t = t.replace(/==\n+/, "==\n"); //keine leerzeilen nach überschriften
t = t.replace(/\* batch: *\n/, ""); //leeres batch weg
//t = t.replace(/\(für (die GNU FDL|Public Domain)\)/, ""); //leere urheberangabe weg
t = t.replace(/<br ?\/?>\n\|/g, "\n|"); //br-tags in der vorlage weg
t = t.replace(/\nder Urheber ist:$/, "");
////// nachfolgend original-autoformat-auszüge von TMg //////
/* Mehrfache Leerzeilen auf einzelne reduzieren */
t = t.replace(/([ \t\r]*\n){3,}/g, "\n\n");
/* Die verschiedensten Formen der Zeilenumbrüche durch korrekte ersetzen */
t = t.replace(/<[\s\/]*br\s*(\s\w[^>]*?)?[\s\/]*>/gi, "<br$1 />");
/* == Überschriften == immer mit Leerzeichen */
t = t.replace(/^(=+) *([^ =].*=)$/gm, "$1 $2");
t = t.replace(/^(=.*[^ =]) *(=+)$/gm, "$1 $2");
/* Weblinks immer als Weblinks */
t = t.replace(/^== *(External|Externer?)? *(Links?|Weblinks?|Webseiten?|Websites?) *==/gim,
"== Weblinks ==");
/* Einheitliche Schreibweisen für Schlüsselwörter incl. Leerzeichenausgleich */
t = t.replace(/\[\[\s*(Category|Kategorie)\s*:\s*/gi, "[[Kategorie:");
t = t.replace(/(\[\[Datei:[^\]]*?)\s*\|+\s*((rechts|right)\s*\|+\s*)?(miniatur|thumb)\s*\|+\s*((rechts|right)\s*\|+\s*)?/gi, "$1|miniatur|");
t = t.replace(/(\[\[Datei:[^\]]*?)\s*\|+\s*(rechts|right)\s*\|+\s*/gi, "$1|rechts|");
t = t.replace(/(\[\[Datei:[^\]]*?)\s*\|+\s*(links|left)\s*\|+\s*/gi, "$1|links|");
t = t.replace(/(\[\[Datei:[^\]]*?)\s*\|+\s*(hochkant|upright)\s*((=)\s*([0-9.]*))?\s*\|+\s*/gi, "$1|hochkant$4$5|");
t = t.replace(/\{\{\s*(Template|Vorlage)\s*:\s*/gi, "{{");
t = t.replace(/\{\{\s*Commons(cat\s*\|(\s*(Category|Kategorie)\s*:)?|\s*\|\s*(Category|Kategorie)\s*:)\s*/gi, "{{Commonscat|");
t = t.replace(/\{\{\s*Commons\s*\|\s*/gi, "{{Commons|");
t = t.replace(/\{\{\s*Wikisource\s*\|\s*/gi, "{{Wikisource|");
t = t.replace(/\{\{\s*Wiktionary\s*\|\s*/gi, "{{Wiktionary|");
t = t.replace(/\{\{\s*(DEFAULTSORT|SORTIERUNG)\s*:\s*/gi, "{{SORTIERUNG:");
t = t.replace(/\s*#(REDIRECT|WEITERLEITUNG)\s*\[\[/gi, "#WEITERLEITUNG [[");
t = t.replace(/\s*<\s*\/\s*ref>/gi, "</ref>");
t = t.replace(/<references\s*\/\s*>/gi, "<references />");
t = t.replace(/class\s*=\s*("(\s*[^\s"]+\s)*)?\s*\bprettytable\b/g, 'class=$1wikitable');
/* Weblinks auf Wikipedia-Sprachversionen in Wikilinks umwandeln */
var interWikiReplace = function($0, $1, $2, $3)
{
return "[[:" + $1 + ":" + $2.replace(/_/g, " ") + (typeof $3 === "string" ? "|" + $3 : "") + "]]";
}
t = t.replace(/\[+ *\w+:\/+([a-z-]+)\.wikipedia\.org\/wiki\/([^?\][|]*?) *\|+ *([^\][\n]+?) *\]+/gi, interWikiReplace);
t = t.replace(/\[+ *\w+:\/+([a-z-]+)\.wikipedia\.org\/wiki\/([^?\][\s]*) +([^\][\n]+?) *\]+/gi, interWikiReplace);
t = t.replace(/\[+ *\w+:\/+([a-z-]+)\.wikipedia\.org\/wiki\/([^?\][\s]*) *\]+/gi, interWikiReplace);
t = t.replace(/\[+ *\w+:\/+(commons|meta)\.wikimedia\.org\/wiki\/([^?\][|]*?) *\|+ *([^\][\n]+?) *\]+/gi, interWikiReplace);
t = t.replace(/\[+ *\w+:\/+(commons|meta)\.wikimedia\.org\/wiki\/([^?\][\s]*) +([^\][\n]+?) *\]+/gi, interWikiReplace);
t = t.replace(/\[+ *\w+:\/+(commons|meta)\.wikimedia\.org\/wiki\/([^?\][\s]*) *\]+/gi, interWikiReplace);
/* Wikilinks mit unnötigem Präfix w:de: oder :de: vereinfachen */
t = t.replace(/\[\[ *w? *: *de *: *([^\][\n]*?) *\]\]/gi, "[[$1]]");
/* Sonstige Weblinks mit senkrechtem Strich reparieren */
t = t.replace(/\[ *(https?:\/\/[^\s|\]]*?) *\| *([^\][\n]*?) *\]/gi, "[$1 $2]");
/* Doppelte eckige Klammern um Weblinks entfernen */
t = t.replace(/\[+ *(https?:\/\/[^\][\n]*?) *\]+/gi, "[$1]");
/* [[Link|Die]]s wird zu [[Link|Dies]] weil besser lesbar */
t = t.replace(/(\[\[[^\|\]]+\|[^\|\]]+)\]\]([a-zäöüß]+)/gi, "$1$2]]");
/* [[Link|Link]]s werden zu [[Link]]s weil kürzer und besser lesbar */
t = t.replace(/\[\[([^\|\]]+)\|\1([^\][\n]*)\]\]/g, "[[$1]]$2");
/* Jede Kategorie in einer eigenen Zeile */
t = t.replace(/(\[\[Kategorie:[^\][\n]*\]\])(?!\n|$)/gi, "$1\n");
t = t.replace(/([^\n])(\[\[Kategorie:[^\][\n]*\]\])/gi, "$1\n$2");
t = t.replace(/(\[\[Kategorie:[^\][\n]*\]\]\n)(?!\[\[Kategorie:|\n|$)/gi, "$1\n");
var changed = t != b.value.replace(/\r+\n/g, "\n");
if (changed) b.value = t.replace(/\s+$/, "");
if ((!a || !a.nodeType || a.nodeName === 'IMG') && $) /* Vector/Monobook */
{
var e = $(a && a.nodeType ? a : 'img[rel=autoFormatter]');
e.css('backgroundColor', changed ? '#DEF740' : '');
e.css('borderRadius', changed ? '3px' : '');
e.css('opacity', changed ? '' : '0.4');
}
else if (a) a.style.color = changed ? 'green' : 'silver';
return false;
}
if(mw.config.get( 'wgCanonicalNamespace' ) === "File"){
if (typeof $ != 'undefined' && typeof $.fn.wikiEditor != 'undefined' && $.wikiEditor.isSupported($.wikiEditor.modules.toolbar)) /* Vector */
{
$(function() {
$('#wpTextbox1').wikiEditor('addToToolbar', {
'section': 'main', /* oder advanced */
'group': 'format',
'tools': {
'autoFormatter': {
'label': 'Auto-Information',
'type': 'button',
'icon': '/media/wikipedia/commons/thumb/3/35/Information_icon.svg/22px-Information_icon.svg.png',
'action': {
'type': 'callback',
'execute': function() { return doAutoInformation(this); }
}
}
}
});
});
}
else
{
mw.loader.using( [ 'mediawiki.toolbar' ], function() /* Old toolbar */
{
mw.toolbar.addButton( {
'imageId': 'mw-customeditbutton-autoInformation',
'imageFile': '/media/wikipedia/commons/thumb/3/35/Information_icon.svg/22px-Information_icon.svg.png',
'speedTip': 'Auto-Information',
'tagOpen': '', 'sampleText': '', 'tagClose': ''
} );
} );
$(function()
{
var f = document.getElementById('mw-customeditbutton-autoInformation');
if (f) { f.onclick = function() { return doAutoInformation(this); }; return; }
/* Notfalls als Link unter dem Bearbeitungsfenster */
f = document.getElementById('editform');
if (!f) return;
var a = document.createElement('A');
a.href = '#';
a.onclick = function() { return doAutoInformation(this); }
a.appendChild(document.createTextNode('Auto-Information'));
var s = f.getElementsByTagName('SPAN');
for (var i = s.length - 1; i >= 0; i--) if (s[i].className === 'editHelp') { s = s[i]; break; }
s.appendChild(document.createTextNode(' | '));
s.appendChild(a);
});
}
}
// </nowiki>