Selaa lähdekoodia

Fix { unescape tag

tags/0.5.0-vsc
Sahab Yazdani 15 vuotta sitten
vanhempi
commit
8d2af2bfed
2 muutettua tiedostoa jossa 20 lisäystä ja 2 poistoa
  1. +10
    -2
      mustache.js
  2. +10
    -0
      test/unit.js

+ 10
- 2
mustache.js Näytä tiedosto

@@ -171,7 +171,7 @@ var Mustache = (function(undefined) {
}
}
var default_tokenizer = /(\r?\n)|({{![\s\S]*?!}})|({{[#\^\/&{>=]?\s*\S*?\s*}?}})|({{=\S*?\s*\S*?=}})/;
var default_tokenizer = /(\r?\n)|({{![\s\S]*?!}})|({{[#\^\/&>]?\s*[^!{=]\S*?\s*}})|({{{\s*\S*?\s*}}})|({{=\S*?\s*\S*?=}})/;
function create_compiler_state(template, partials, openTag, closeTag) {
openTag = openTag || '{{';
closeTag = closeTag || '}}';
@@ -183,8 +183,16 @@ var Mustache = (function(undefined) {
var rOTag = escape_regex(openTag),
rETag = escape_regex(closeTag);

tokenizer = new RegExp('(\\r?\\n)|(' + rOTag + '![\\s\\S]*?!' + rETag + ')|(' + rOTag + '[#\^\/&{>=]?\\s*\\S*?\\s*}?' + rETag + ')|(' + rOTag + '=\\S*?\\s*\\S*?=' + rETag + ')');
var parts = [
'(\\r?\\n)' // new lines
, '(' + rOTag + '![\\s\\S]*?!' + rETag + ')' // comments
, '(' + rOTag + '[#\^\/&>]?\\s*[^!{=]\\S*?\\s*' + rETag + ')' // all other tags
, '(' + rOTag + '{\\s*\\S*?\\s*}' + rETag + ')' // { unescape token
, '(' + rOTag + '=\\S*?\\s*\\S*?=' + rETag + ')' // set delimiter change
];
tokenizer = new RegExp(parts.join('|'));
}

var code = [];
var state = {


+ 10
- 0
test/unit.js Näytä tiedosto

@@ -154,6 +154,16 @@ test("'{' or '&' (Unescaped Variable)", function() {
'<h1>Bear > Shark</h1>',
'& character'
);
equals(
Mustache.to_html(
'<h1>{{title}}}</h1>',
{ title: 'Bear > Shark' }
, {}
),
'<h1>Bear &gt; Shark}</h1>'
, 'Potential false positive'
);
});

test("'#' (Sections)", function() {


Loading…
Peruuta
Tallenna