1234567891011121314151617181920212223242526 |
- module.exports = function (opts) {
- var sep = opts ? opts.sep : '{}'
- var len = sep.length
- var whitespace = '\\s*'
- var left = escape(sep.substring(0, len / 2)) + whitespace
- var right = whitespace + escape(sep.substring(len / 2, len))
- return function (template, values) {
- Object.keys(values).forEach(function (key) {
- var value = String(values[key]).replace(/\$/g, '$$$$')
- template = template.replace(regExp(key), value)
- })
- return template
- }
- function escape (s) {
- return [].map.call(s, function (char) {
- return '\\' + char
- }).join('')
- }
- function regExp (key) {
- return new RegExp(left + key + right, 'g')
- }
- }
|