| Index: lib/src/prism/components/prism-handlebars.js
|
| diff --git a/lib/src/prism/components/prism-handlebars.js b/lib/src/prism/components/prism-handlebars.js
|
| index 00fe7714d68a0b6dcdc70e1e3427cde191a679a0..d6eb8e9551908acd1b2c42be1035aa8f239200db 100644
|
| --- a/lib/src/prism/components/prism-handlebars.js
|
| +++ b/lib/src/prism/components/prism-handlebars.js
|
| @@ -10,11 +10,11 @@
|
| pattern: /^\{\{\{?|\}\}\}?$/i,
|
| alias: 'punctuation'
|
| },
|
| - 'string': /(["'])(\\?.)+?\1/,
|
| - 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/,
|
| + 'string': /(["'])(\\?.)*?\1/,
|
| + 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/,
|
| 'boolean': /\b(true|false)\b/,
|
| 'block': {
|
| - pattern: /^(\s*~?\s*)[#\/]\S+/i,
|
| + pattern: /^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,
|
| lookbehind: true,
|
| alias: 'keyword'
|
| },
|
| @@ -26,7 +26,7 @@
|
| }
|
| },
|
| 'punctuation': /[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,
|
| - 'variable': /[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/
|
| + 'variable': /[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/
|
| }
|
| }
|
| });
|
| @@ -73,7 +73,8 @@
|
| }
|
|
|
| for (var i = 0, t; t = env.tokenStack[i]; i++) {
|
| - env.highlightedCode = env.highlightedCode.replace('___HANDLEBARS' + (i + 1) + '___', Prism.highlight(t, env.grammar, 'handlebars'));
|
| + // The replace prevents $$, $&, $`, $', $n, $nn from being interpreted as special patterns
|
| + env.highlightedCode = env.highlightedCode.replace('___HANDLEBARS' + (i + 1) + '___', Prism.highlight(t, env.grammar, 'handlebars').replace(/\$/g, '$$$$'));
|
| }
|
|
|
| env.element.innerHTML = env.highlightedCode;
|
|
|