UNPKG

925 BJavaScriptView Raw
1
2/*!
3 * Jade - utils
4 * Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
5 * MIT Licensed
6 */
7
8/**
9 * Convert interpolation in the given string to JavaScript.
10 *
11 * @param {String} str
12 * @return {String}
13 * @api private
14 */
15
16var interpolate = exports.interpolate = function(str){
17 return str.replace(/(\\)?([#!]){(.*?)}/g, function(str, escape, flag, code){
18 return escape
19 ? str
20 : "' + "
21 + ('!' == flag ? '' : 'escape')
22 + "((interp = " + code.replace(/\\'/g, "'")
23 + ") == null ? '' : interp) + '";
24 });
25};
26
27/**
28 * Escape single quotes in `str`.
29 *
30 * @param {String} str
31 * @return {String}
32 * @api private
33 */
34
35var escape = exports.escape = function(str) {
36 return str.replace(/'/g, "\\'");
37};
38
39/**
40 * Interpolate, and escape the given `str`.
41 *
42 * @param {String} str
43 * @return {String}
44 * @api private
45 */
46
47exports.text = function(str){
48 return interpolate(escape(str));
49};
\No newline at end of file