/**
* Aus ]
* Einbinden mit importScript("Benutzer:Revolus/Datei-syntax-updater.js"); in deine ]
*/
function rev_syntax() {
var eb = document.getElementById("wpTextbox1");
if(!eb || eb.getAttribute("readonly")) return;
function vllt(s) { return "(?:" + s + ")?"; }
function trim(s) { return "\\s*" + s + "\\s*"; }
function link(s) { return "\\\\]"; }
function extl(s) { return "\\"; }
function oder(a) { return "(?:" + a.join("|") + ")"; }
var plainZeichen = "\\{\\}]";
var htmlZeichen = "\\{\\}]";
var dateiPattern = "*"+ oder(", "", "", ""]) + "*:*" + "(" + plainZeichen + "+?)*";
var extlinkPattern = extl(plainZeichen+"+" + vllt(" " + plainZeichen+"*"));
var wikilinkPattern = link(plainZeichen+"+" + vllt("\\|" + plainZeichen+"*"));
var paramPattern = oder();
var innerRegex = new RegExp(trim("(" + paramPattern + "*?)") + "(\\||$)", "g");
var outerRegex = new RegExp(link(dateiPattern + vllt("\\|(" + vllt(oder()+"*") + ")")), "g");
function bildHandler(_, file, attrs) {
var nowiki = false;
var texts = ;
var attribute = {
"miniatur": false,
"gerahmt": false,
"rahmenlos": false,
"rand": false,
"links": false,
"rechts": false,
"ohne": false,
"zentriert": false,
"pixel": "",
"seite": "",
"hochkant" : "",
"verweis": "",
"alternativtext": ""
};
function deepReplace(_, str, delim) {
if((str.length <= 0) || nowiki) {
return "";
}
if(str.indexOf("<nowiki") >= 0) {
nowiki = true;
return "";
}
switch(str) {
case("thumb"): case("thumbnail"): case("miniatur"):
attribute = true;
return "";
case("left"): case("links"):
attribute = true;
return "";
case("right"): case("rechts"):
attribute = true;
return "";
case("none"): case("ohne"):
attribute = true;
return "";
case("center"): case("centre"): case("zentriert"):
attribute = true;
return "";
case("frame"): case("framed"): case("enframed"): case("gerahmt"):
attribute = true;
return "";
case("frameless"): case("rahmenlos"):
attribute = true;
return "";
case("border"): case("rand"):
attribute = true;
return "";
case("upright"): case("hochkant"):
attribute = true;
return "";
default: {
var e = /^(page|seite|upright|hochkant|alt(?:ernativtext)?|link|verweis)=\s*(.*?)\s*$/.exec(str);
if(e) {
switch(e) {
case("page"):
case("seite"):
// ignorieren: ich konnte noch nicht herausfinden,
// was das überhaupt ist ...
break;
case("upright"):
case("hochkant"):
attribute = "hochkant=" + e;
return "";
case("alt"):
case("alternativtext"):
attribute = "alternativtext=" + e;
return "";
case("link"):
case("verweis"):
attribute = "verweis=" + e;
return "";
}
}
e = /^\s*(\d*x?\d+px)\s*$/.exec(str);
if(e) {
attribute = e;
return "";
}
}
}
texts.push(str);
return "";
}
if(!attrs || (attrs.length == 0)) {
return "]";
} else {
attrs.replace(innerRegex, deepReplace);
if(nowiki) {
return "]";
} else {
var mitte = "";
if(attribute) {
attribute = false;
}
for(var i in attribute) {
var mitteAlt = mitte;
switch(typeof(attribute)) {
case("boolean"): if(attribute) {
mitte += "|" + i;
} break;
case("string"): if(attribute.length > 0) {
mitte += "|" + attribute;
} break;
}
}
var rechts = "";
for(var i = 0; i < texts.length; ++i) {
rechts += "|" + texts;
}
return "]";
}
}
}
eb.value = eb.value.replace(outerRegex, bildHandler);
}
if(
(mw.config.get('wgAction') === "edit") &&
(mw.config.get('wgNamespaceNumber') === 0) &&
("x".replace(/x/, function() {
/* schlechte IE-Versionen verstehen das evtl. nicht */
return "y";
}) === "y")
) {
$(rev_syntax);
}