Widget:A2Event: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
Zeile 2: Zeile 2:
 
   
 
   
 
  function wait4a2 (f){
 
  function wait4a2 (f){
    if (window.a2 && window.a2.parser) {
+
if (window.a2 && window.a2.parser) {
        f();
+
f();
    } else {
+
} else {
        if (window.importJS) {
+
if (window.importJS) {
            importJS("MediaWiki:Skin/Projekt:Adventure2/lib.js");
+
importJS("MediaWiki:Skin/Projekt:Adventure2/lib.js");
            importJS("MediaWiki:Skin/Projekt:Adventure2/parser.js");
+
importJS("MediaWiki:Skin/Projekt:Adventure2/parser.js");
        }
+
}
        window.setTimeout(function() { wait4a2(f); }, 100);
+
window.setTimeout(function() { wait4a2(f); }, 100);
    }
+
}
 
  }
 
  }
 
   
 
   
 
  $(function () {
 
  $(function () {
wait4a2(function () {
+
wait4a2(function () {
+
    var event = {};
+
var text = "<!--{$event|escape:'javascript'}-->";
    var error = "";
+
var list = window.a2.parser.parse(text);
    try {
+
var error = "";
        var event = window.a2.parser.parse("<!--{$event|escape:'javascript'}-->");
+
 
    } catch (e) {
+
try {
        var error = "Line " + e.line + ", Column " + e.column + ": " + e.message;
+
var event = window.a2.parser.parse("<!--{$event|escape:'javascript'}-->");
    }
+
} catch (e) {
 
+
var error = "Line " + e.line + ", Column " + e.column + ": " + e.message;
    if ("<!--{$action|escape:'javascript'}-->" == "render"){   
+
}
        if (!error)
+
 
            a2.registerEventHandler(event);
+
if ("<!--{$action|escape:'javascript'}-->" != "render"){   
    } else {
+
$pre = $("<pr"+"e/>");
        $pre = $("<pr"+"e/>");
+
var lines = text.split("\n");
        $pre.text("<!--{$event|escape:'javascript'}-->\n"+String(error));
+
for (var i=0; i<lines.length; i++) {
+
prefix = String(i);
        if ($("#wikiPreview").length)
+
while (prefix.length < 3)
            $cont = $("#wikiPreview");
+
prefix = " "+prefix;
        else
+
 
            $cont = $("#bodyContent");
+
var lineText = document.createTextNode(prefix + ": " + lines[i]);
+
if (i==e.line){
        $cont.append($pre);
+
var $node = $('<span style="color: red;" />').append(lineText);
    }
+
$node.append("<br/>").append(document.createTextNode(error));
});
+
} else {
 +
var $node = $(lineText)
 +
}
 +
$pre.append($node);
 +
}
 +
 
 +
if ($("#wikiPreview").length)
 +
$cont = $("#wikiPreview");
 +
else
 +
$cont = $("#bodyContent");
 +
 
 +
$cont.append($pre);
 +
 
 +
return;
 +
}
 +
 
 +
if (error)
 +
return;
 +
 
 +
for (var i=0; i<list.length; i++) {
 +
 +
var type = list[i][0];
 +
var data = list[i][1];
 +
 
 +
if (type == "event"){
 +
a2.registerEventHandler(data);
 +
} else {
 +
//FIXME: not yet implemented: declarations for item, page
 +
}
 +
}
 +
});
 
  });
 
  });
 
    
 
    
 
  </script>
 
  </script>

Version vom 10. Juli 2012, 20:02 Uhr

<script type="text/javascript">

function wait4a2 (f){

if (window.a2 && window.a2.parser) { f(); } else { if (window.importJS) { importJS("MediaWiki:Skin/Projekt:Adventure2/lib.js"); importJS("MediaWiki:Skin/Projekt:Adventure2/parser.js"); } window.setTimeout(function() { wait4a2(f); }, 100); }

}

$(function () {

wait4a2(function () {

var text = ""; var list = window.a2.parser.parse(text); var error = "";

try { var event = window.a2.parser.parse(""); } catch (e) { var error = "Line " + e.line + ", Column " + e.column + ": " + e.message; }

if ("" != "render"){ $pre = $("<pr"+"e/>"); var lines = text.split("\n"); for (var i=0; i<lines.length; i++) { prefix = String(i); while (prefix.length < 3) prefix = " "+prefix;

var lineText = document.createTextNode(prefix + ": " + lines[i]); if (i==e.line){ var $node = $('').append(lineText); $node.append("
").append(document.createTextNode(error)); } else { var $node = $(lineText) } $pre.append($node); }

if ($("#wikiPreview").length) $cont = $("#wikiPreview"); else $cont = $("#bodyContent");

$cont.append($pre);

return; }

if (error) return;

for (var i=0; i<list.length; i++) {

var type = list[i][0]; var data = list[i][1];

if (type == "event"){ a2.registerEventHandler(data); } else { //FIXME: not yet implemented: declarations for item, page } } });

});
 
</script>