marko
Version:
UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.
36 lines (26 loc) • 747 B
JavaScript
;
exports.d = function (value) {
return escapeDoubleQuotes(value + "", 0);
};
exports.___escapeDoubleQuotes = escapeDoubleQuotes;
exports.___escapeSingleQuotes = escapeSingleQuotes;
function escapeSingleQuotes(value, startPos) {
return escapeQuote(value, startPos, "'", "'");
}
function escapeDoubleQuotes(value, startPos) {
return escapeQuote(value, startPos, '"', """);
}
function escapeQuote(str, startPos, quote, escaped) {
var result = "";
var lastPos = 0;
for (var i = startPos, len = str.length; i < len; i++) {
if (str[i] === quote) {
result += str.slice(lastPos, i) + escaped;
lastPos = i + 1;
}
}
if (lastPos) {
return result + str.slice(lastPos);
}
return str;
}