|
@@ -76,7 +76,7 @@ class DynamicText {
|
|
applyRec([], obj, x, ref, onMissing);
|
|
applyRec([], obj, x, ref, onMissing);
|
|
}
|
|
}
|
|
|
|
|
|
- static var r_attr = ~/::([A-Za-z0-9_]+)::/g;
|
|
|
|
|
|
+ public static var r_attr = ~/::(.+?)::/g;
|
|
|
|
|
|
static function applyText( path : Array<String>, old : Dynamic, x : Access, ref : Access, onMissing : Array<String> -> String -> String ) {
|
|
static function applyText( path : Array<String>, old : Dynamic, x : Access, ref : Access, onMissing : Array<String> -> String -> String ) {
|
|
var str = x == null ? null : x.innerHTML;
|
|
var str = x == null ? null : x.innerHTML;
|
|
@@ -266,7 +266,7 @@ class DynamicText {
|
|
|
|
|
|
static function parseText( str : String ) : Dynamic {
|
|
static function parseText( str : String ) : Dynamic {
|
|
str = str.split("\r\n").join("\n");
|
|
str = str.split("\r\n").join("\n");
|
|
- if( str.split("::").length <= 1 )
|
|
|
|
|
|
+ if( !r_attr.match(str) )
|
|
return str;
|
|
return str;
|
|
return function(vars) {
|
|
return function(vars) {
|
|
var str = str;
|
|
var str = str;
|
|
@@ -307,23 +307,21 @@ class DynamicText {
|
|
return macro : Array<String>;
|
|
return macro : Array<String>;
|
|
case "t":
|
|
case "t":
|
|
var tstring = macro : String;
|
|
var tstring = macro : String;
|
|
- var vars = x.innerHTML.split("::");
|
|
|
|
- if( vars.length <= 1 )
|
|
|
|
|
|
+ if (!r_attr.match(x.innerHTML))
|
|
return tstring;
|
|
return tstring;
|
|
// printer function
|
|
// printer function
|
|
var i = 1;
|
|
var i = 1;
|
|
var fields = new Array<Field>();
|
|
var fields = new Array<Field>();
|
|
var map = new Map();
|
|
var map = new Map();
|
|
- while( i < vars.length ) {
|
|
|
|
- var name = vars[i];
|
|
|
|
- if( map.exists(name) ) {
|
|
|
|
- i += 2;
|
|
|
|
- continue;
|
|
|
|
|
|
+ r_attr.map(x.innerHTML, function(r) {
|
|
|
|
+ var name = r.matched(1);
|
|
|
|
+ if( !map.exists(name) ) {
|
|
|
|
+ map.set(name, true);
|
|
|
|
+ fields.push( { name : name, kind : FVar(macro : Dynamic), pos : pos.pos, meta : [] } );
|
|
}
|
|
}
|
|
- map.set(name, true);
|
|
|
|
- fields.push( { name : name, kind : FVar(macro : Dynamic), pos : pos.pos, meta : [] } );
|
|
|
|
- i += 2;
|
|
|
|
- }
|
|
|
|
|
|
+ return r.matched(0);
|
|
|
|
+ });
|
|
|
|
+
|
|
return TFunction([TAnonymous(fields)], tstring);
|
|
return TFunction([TAnonymous(fields)], tstring);
|
|
default:
|
|
default:
|
|
Context.error("Unknown node " + x.name, findPos(pos,'<${x.name.toLowerCase()}'));
|
|
Context.error("Unknown node " + x.name, findPos(pos,'<${x.name.toLowerCase()}'));
|