You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
(function (Prism) { |
|
|
|
Prism.languages.handlebars = { |
|
'comment': /\{\{![\s\S]*?\}\}/, |
|
'delimiter': { |
|
pattern: /^\{\{\{?|\}\}\}?$/, |
|
alias: 'punctuation' |
|
}, |
|
'string': /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/, |
|
'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/, |
|
'boolean': /\b(?:false|true)\b/, |
|
'block': { |
|
pattern: /^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/, |
|
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.languages.hbs = Prism.languages.handlebars; |
|
Prism.languages.mustache = Prism.languages.handlebars; |
|
|
|
}(Prism));
|
|
|