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
/**
* Blendet eine "Auto-Format"-Funktion unter dem Bearbeitungsfenster ein, die
* viele typische Wikifizierungs-Fehler automatisch korrigiert.
* Eine ausführliche Beschreibung ist auf der Diskussionsseite zu finden.
*/
function doAutoformat(a)
{
var e = document.forms["editform"].elements;
var b = e["wpTextbox1"];
var t = b.value;
// Links ohne Leerzeichen
t = t.replace(/\[\[\s*/g, "[[");
t = t.replace(/\s*\]\]/g, "]]");
// Parameter bei Dateieinbindung in einheitlicher Reihenfolge
t = t.replace(/(Datei:[^\|]*)\|([^\]\n]*\|)?\s*(upright|hochkant)\s*(=\s*[^\|\s]*)?\s*\|/gi, "$1|hochkant$4|$2");
t = t.replace(/\|hochkant=\s*/gi, "|hochkant=");
t = t.replace(/(Datei:[^\|]*)\|([^\]\n]*\|)?\s*(left|links)\s*\|/gi, "$1|links|$2");
t = t.replace(/(Datei:[^\|]*)\|([^\]\n]*\|)?\s*(right|rechts)\s*\|/gi, "$1|rechts|$2");
t = t.replace(/(Datei:[^\|]*)\|([^\]\n]*\|)?\s*(thumb|miniatur)\s*\|/gi, "$1|miniatur|$2");
t = t.replace(/\|miniatur\|rechts\|/gi, "|miniatur|");
/* // Tabellensyntax
// Leerzeichen um "|"
t = t.replace(/\|/g, " | ");
// Leerzeichen entfernen
t = t.replace(/\| \|/g, "||");
t = t.replace(/\n(\s*) \|/g, "\n$1|");
t = t.replace(/\{ \|/g, "{|");
t = t.replace(/\| \}/g, "|}");
t = t.replace(/\| -+/g, "|-");
t = t.replace(/\[\[([^\|\]]*[^\|\] ]) *\| *([^\]]*)\]\]/g, "[[$1|$2]]");
t = t.replace(/\{\{([^\}]*[^\} ])(\s*) \| ([^\}]*)\}\}/g, "{{$1$2|$3}}");
t = t.replace(/\{\{([^\}]*[^\} ])(\s*) \| ([^\}]*)\}\}/g, "{{$1$2|$3}}");
t = t.replace(/\{\{([^\}]*[^\} ])(\s*) \| ([^\}]*)\}\}/g, "{{$1$2|$3}}");
t = t.replace(/\{\{([^\}]*[^\} ])(\s*) \| ([^\}]*)\}\}/g, "{{$1$2|$3}}");
t = t.replace(/\{\{([^\}]*[^\} ])(\s*) \| ([^\}]*)\}\}/g, "{{$1$2|$3}}");
t = t.replace(/\{\{([^\}]*[^\} ])(\s*) \| ([^\}]*)\}\}/g, "{{$1$2|$3}}");
t = t.replace(/ +\|/g, " |");
t = t.replace(/\| +/g, "| ");
t = t.replace(/\| \n/g, "|\n");
*/
// Leerzeichen vor/nach ||
t = t.replace(/\|\|/g, " || ");
t = t.replace(/(\s) *\|\|/g, "$1||");
t = t.replace(/\|\| *(\s)/g, "||$1");
// Leerzeichen nach \n| außer |- |+ |} ||
t = t.replace(/\n\| */g, "\n| ");
t = t.replace(/\n\| (-|\+|\}|\|[^\|\n])/g, "\n|$1");
// |---- -> |-
t = t.replace(/\n\|-+( ?)/g, "\n|-$1");
t = t.replace(/\n\|- *\n\|-/g, "\n|-");
// Überschriftszeilen mit "!"
t = t.replace(/\s*!!\s*/g, " !! ");
t = t.replace(/\n!\s*/g, "\n! ");
// Listensyntax
t = t.replace(/\n([\*#:;]+)\s*(\S)/g, "\n$1 $2");
t = t.replace(/\n# (WEITER|SORT)/g, "\n#$1");
// Datum entlinken
t = t.replace(/\[\[([12]?[0-9]{3})\]\]/g, "$1");
t = t.replace(/\[\[0?([123]?[0-9]. (Januar|Jänner|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember))\]\]/g, "$1");
// Formatierung asd="fgh"
t = t.replace(/(align|span|size|width|color) *= *"? *(#? *\w*) *"? *(;?) */g, "$1=\"$2\" ");
t = t.replace(/color="#? *(\w{6})"/g, "color=\"#$1\"");
// Leerzeichen nach asd="fgh" |
t = t.replace(/(="#?\w*" \|) *([^\n])/g, "$1 $2");
// !-Zeile ohne align=center
t = t.replace(/! *([^\n\| ;][^\n\|;]*[^\n\| ;]);? *align="?center"?;? */g, "! $1 ");
t = t.replace(/! *align="?center"?(;? (\| )?)/g, "! ");
// !-Zeile ohne '''fett'''
t = t.replace(/\n! ([^'\n]*)'''([^'\n]*)'''/g, "\n! $1$2");
// Leerzeile vor und nach Vorlagen
t = t.replace(/([^\|\{\n])\n+\{\{/gi, "$1\n\n{{");
t = t.replace(/\}\}\n+([^\|\}\*\n])/gi, "}}\n\n$1");
t = t.replace(/\}\}\n+{\{/gi, "}}\n{{");
// Leerzeile vor und nach Bildern
t = t.replace(/([^\|\n])\n+\[\[Datei:/g, "$1\n\n[[Datei:");
t = t.replace(/\[\[Datei:(.*)\n+([^\|\n])/g, "[[Datei:$1\n\n$2");
t = t.replace(/tei:([^\n]*)\n\n\[\[Da/g, "tei:$1\n[[Da");
// Leerzeile vor und nach Überschriften
t = t.replace(/\s*\n=/g, "\n\n=");
t = t.replace(/=\s*\n\s*/g, "=\n");
// Interwikis ohne Leerzeilen
t = t.replace(/(\[\[[^\|\]:]{2,}:[^\|\]:]+\]\])\n*/g, "$1\n");
// circa
t = t.replace(/(circa|zirka) /g, "etwa ");
t = t.replace(/(Circa|Zirka) /g, "Etwa ");
// Vorlagenparameter
// kein Leerzeichen nach |
t = t.replace(/\n *\| ([^\n\|=]*)=/g, "\n|$1=");
t = t.replace(/\n *\|([-\+]?)(\w*(align|span|color|style|width)=")/g, "\n|$1 $2");
// | an den Zeilenanfang
t = t.replace(/ *\|\n([\wäöüßÄÖÜ-\/]* *=)/g, "\n|$1");
t = t.replace(/(\n\|[^\n=-][^\n=]*[^\n= ])= *([^\n\|= ][^\n\|=]*)?\n/g, "$1 = $2\n");
t = t.replace(/(\n\|[^\n=-][^\n=]*[^\n= ])= *([^\n\|= ][^\n\|=]*)?\n/g, "$1 = $2\n");
// Leerzeichen nach =
t = t.replace(/ = *([^=])/g, " = $1");
// -überfl. |
t = t.replace(/\|\s*\n\}/g, "\n}");
t = t.replace(/ +\n/g, "\n");
// Einzelnachweise
t = t.replace(/== .* ==\n(<references \/>)/g, "== Einzelnachweise ==\n$1");
// Kommazahlen
t = t.replace(/([0-9])\.([0-9]{1,2})( %| )/g, "$1,$2$3");
// Metadaten Einwohner
t = t.replace(/#time: j. F Y \| \{\{Metadaten Einwohnerzahl ([A-Z-]*)\|TIMESTAMP/g, "EWD|$1");
if (t != b.value.replace(/\r+\n/g, "\n"))
{
b.value = t;
a.style.color = "green";
//e["wpDiff"].click();
}
else
a.style.color = "silver";
return false;
}
function doAutoformatCH(a)
{
var e = document.forms["editform"].elements;
var b = e["wpTextbox1"];
var t = b.value;
// Zahlen
t = t.replace(/\.([0-9]{3})\b/g, "'$1");
// „“ -> «»
t = t.replace(/„([^„“]+)“/g, "«$1»");
// Höhe m.ü.M.
t = t.replace(/( | )*m(etern?|\.)?( | )*ü(ber|\.)?( | )*M(eer)?\.?/gi, " m ü. M.");
t = t.replace(/(([0-9])')?([0-9]+) m ü\. M\./g, "{{Höhe|$2$3|CH}}");
t = t.replace(/(([0-9])')?([0-9]+)( | )*\[\[[\wäöü ]*\| m ü\. M\.\]\]/g, "{{Höhe|$2$3|CH|link=true}}");
// sbz
t = t.replace(/(schweizbezogen *-->)\s*\{\{/g, "$1\n{{");
// BKSK
t = t.replace(/(Begriffsklärung Schweizer Kanton\|\w\w\|)(Aargau|Appenzell Ausserrhoden|Basel-Landschaft|Basel-Stadt|Bern|Freiburg|Genf|Glarus|Graubünden|Jura|Appenzell Innerrhoden|Luzern|Neuenburg|Nidwalden|Obwalden|Schaffhausen|Schwyz|Solothurn|St. Gallen|Tessin|Thurgau|Uri|Waadt|Wallis|Zug|Zürich)\|/g, "$1");
// BEZIRK
t = t.replace(/\|BEZIRK.*kennt keine[^\n]*\n/g, "");
t = t.replace(/\|BEZIRK = \[\[(.*) \(\w*\)\|.*\]\]\n/g, "|BEZIRK = $1\n");
// EINWOHNER
t = t.replace(/(\|GEMEINDE =(.*\n)*)(\|EINWOHNER = *[^\n]*\n)/g, "$1$3$3");
t = t.replace(/(\|GEMEINDE =(.*\n)*)(\|STAND_EINWOHNER = *[^\n]*\n)/g, "$1$3$3");
t = t.replace(/(Infobox Ort in der Schweiz(.*\n)*)(\|EINWOHNER = *[^\n]*\n)/g, "$1<!--Einwohner werden automatisch ergänzt-->\n");
t = t.replace(/(\|EINWOHNER = *[^\n]*\n)<!--Einwohner werden automatisch ergänzt-->\n/g, "$1");
t = t.replace(/(Infobox Ort in der Schweiz(.*\n)*)(\|STAND_EINWOHNER = *[^\n]*\n)/g, "$1");
// Kanton
t = t.replace(/(\\[\[Kanton .Schweiz..Kanton.. ..Kanton ([\w äöü]+)\|([\w äöü]+)\]\]/g, "[[Kanton $1]]");
t = t.replace(/(\\[\[Kanton .Schweiz..Kantons.. ..Kanton ([\w äöü]+)\|([\w äöü]+)\]\]/g, "[[Kanton $1|Kantons $1]]");
if (t != b.value.replace(/\r+\n/g, "\n"))
{
b.value = t;
a.style.color = "green";
//e["wpDiff"].click();
}
else
a.style.color = "silver";
return false;
}
addOnloadHook(function()
{
var vForm = document.getElementById("editform");
if (!vForm) return;
var vLink = document.createElement("A");
vLink.href = "#";
vLink.onclick = function() { return doAutoformat(this); }
vLink.appendChild(document.createTextNode("Autoformat"));
var vLinkCH = document.createElement("A");
vLinkCH.href = "#";
vLinkCH.onclick = function() { return doAutoformatCH(this); }
vLinkCH.appendChild(document.createTextNode("CH"));
var vElemente = vForm.getElementsByTagName("SPAN");
for (var i = vElemente.length - 1; i >= 0; i--)
if (vElemente[i].className === "editHelp")
{
vElemente = vElemente[i];
break;
}
vElemente.appendChild(document.createTextNode(" | "));
vElemente.appendChild(vLink);
vElemente.appendChild(document.createTextNode(" | "));
vElemente.appendChild(vLinkCH);
});