diff --git a/mustache.js b/mustache.js
index dcb848c..a242c1c 100644
--- a/mustache.js
+++ b/mustache.js
@@ -59,11 +59,12 @@ var Mustache = (typeof module !== "undefined" && module.exports) || {};
"<": "<",
">": ">",
'"': '"',
- "'": '''
+ "'": ''',
+ "/": '/'
};
function escapeHtml(string) {
- return String(string).replace(/[&<>"']/g, function (s) {
+ return String(string).replace(/[&<>"'\/]/g, function (s) {
return entityMap[s];
});
}
diff --git a/test/_files/dot_notation.js b/test/_files/dot_notation.js
index ca995f7..de06a03 100644
--- a/test/_files/dot_notation.js
+++ b/test/_files/dot_notation.js
@@ -7,8 +7,8 @@
return this.value * 0.2;
},
currency: {
- symbol: '€',
- name: 'Euro'
+ symbol: '$',
+ name: 'USD'
}
},
availability: {
diff --git a/test/_files/dot_notation.txt b/test/_files/dot_notation.txt
index d0e4707..08afa05 100644
--- a/test/_files/dot_notation.txt
+++ b/test/_files/dot_notation.txt
@@ -1,8 +1,8 @@
A Book
Authors:
-Price: €200 Euro In Stock
-VAT: €40
+Price: $200 USD In Stock
+VAT: $40
Test truthy false values:
Zero: 0
diff --git a/test/_files/escaped.js b/test/_files/escaped.js
index 7735877..cd77c1f 100644
--- a/test/_files/escaped.js
+++ b/test/_files/escaped.js
@@ -2,5 +2,5 @@
title: function () {
return "Bear > Shark";
},
- entities: """
+ entities: "" \"'<>/"
})
diff --git a/test/_files/escaped.txt b/test/_files/escaped.txt
index 2c3ad1f..c1527d5 100644
--- a/test/_files/escaped.txt
+++ b/test/_files/escaped.txt
@@ -1,2 +1,2 @@
Bear > Shark
-And even ", but not ".
+And even " "'<>/, but not " "'<>/.
diff --git a/wrappers/qooxdoo/mustache.js.post b/wrappers/qooxdoo/mustache.js.post
index bd4b406..aba7af6 100644
--- a/wrappers/qooxdoo/mustache.js.post
+++ b/wrappers/qooxdoo/mustache.js.post
@@ -4,6 +4,6 @@
// EXPOSE qooxdoo variant
qx.bom.Template.version = Mustache.version;
-qx.bom.Template.toHtml = Mustache.render;
+qx.bom.Template.render = Mustache.render;
})();
diff --git a/wrappers/qooxdoo/mustache.js.pre b/wrappers/qooxdoo/mustache.js.pre
index f6b1c96..b51ccf9 100644
--- a/wrappers/qooxdoo/mustache.js.pre
+++ b/wrappers/qooxdoo/mustache.js.pre
@@ -5,7 +5,7 @@
http://qooxdoo.org
Copyright:
- 2004-2011 1&1 Internet AG, Germany, http://www.1und1.de
+ 2004-2012 1&1 Internet AG, Germany, http://www.1und1.de
License:
LGPL: http://www.gnu.org/licenses/lgpl.html
@@ -74,7 +74,7 @@
* For further details, please visit the mustache.js documentation here:
* https://github.com/janl/mustache.js/blob/master/README.md
*/
-qx.Class.define("qx.bom.Template", {
+qx.Bootstrap.define("qx.bom.Template", {
statics : {
/** Contains the mustache.js version. */
version: null,
@@ -83,21 +83,21 @@ qx.Class.define("qx.bom.Template", {
* Original and only template method of mustache.js. For further
* documentation, please visit https://github.com/janl/mustache.js
*
- * @signature function(template, view, partials, send_fun)
+ * @signature function(template, view, partials)
* @param template {String} The String containing the template.
* @param view {Object} The object holding the data to render.
* @param partials {Object} Object holding parts of a template.
- * @param send_fun {Function?} Callback function for streaming.
* @return {String} The parsed template.
*/
- toHtml: null,
+ render: null,
/**
* Helper method which provides you with a direct access to templates
- * stored as HTML in the DOM. The DOM node with the given ID will be reated
+ * stored as HTML in the DOM. The DOM node with the given ID will be used
* as a template, parsed and a new DOM node will be returned containing the
- * parsed data.
+ * parsed data. Keep in mind to have only one root DOM element in the the
+ * template.
*
* @param id {String} The id of the HTML template in the DOM.
* @param view {Object} The object holding the data to render.
@@ -105,14 +105,22 @@ qx.Class.define("qx.bom.Template", {
* @return {DomNode} A DOM element holding the parsed template data.
*/
get : function(id, view, partials) {
+ // get the content stored in the DOM
var template = document.getElementById(id);
var inner = template.innerHTML;
+ // apply the view
inner = this.toHtml(inner, view, partials);
+ // special case for text only conversion
+ if (inner.search(/<|>/) === -1) {
+ return inner;
+ }
+
+ // create a helper to convert the string into DOM nodes
var helper = qx.bom.Element.create("div");
helper.innerHTML = inner;
-
+
return helper.children[0];
}
}
@@ -124,4 +132,3 @@ qx.Class.define("qx.bom.Template", {
* Below is the original mustache.js code. Snapshot date is mentioned in
* the head of this file.
*/
-
\ No newline at end of file