aboutsummaryrefslogtreecommitdiff
path: root/node_modules/prismjs/components/prism-handlebars.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/prismjs/components/prism-handlebars.js')
-rw-r--r--node_modules/prismjs/components/prism-handlebars.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/prismjs/components/prism-handlebars.js b/node_modules/prismjs/components/prism-handlebars.js
new file mode 100644
index 00000000..e23933d4
--- /dev/null
+++ b/node_modules/prismjs/components/prism-handlebars.js
@@ -0,0 +1,37 @@
+(function(Prism) {
+
+ Prism.languages.handlebars = {
+ 'comment': /\{\{![\s\S]*?\}\}/,
+ 'delimiter': {
+ pattern: /^\{\{\{?|\}\}\}?$/i,
+ alias: 'punctuation'
+ },
+ 'string': /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,
+ 'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,
+ 'boolean': /\b(?:true|false)\b/,
+ 'block': {
+ pattern: /^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,
+ lookbehind: true,
+ alias: 'keyword'
+ },
+ 'brackets': {
+ pattern: /\[[^\]]+\]/,
+ inside: {
+ punctuation: /\[|\]/,
+ variable: /[\s\S]+/
+ }
+ },
+ 'punctuation': /[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,
+ 'variable': /[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/
+ };
+
+ Prism.hooks.add('before-tokenize', function(env) {
+ var handlebarsPattern = /\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;
+ Prism.languages['markup-templating'].buildPlaceholders(env, 'handlebars', handlebarsPattern);
+ });
+
+ Prism.hooks.add('after-tokenize', function(env) {
+ Prism.languages['markup-templating'].tokenizePlaceholders(env, 'handlebars');
+ });
+
+}(Prism));