aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-handlebars.js
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
committerArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
commita98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch)
tree542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-handlebars.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-handlebars.js')
-rw-r--r--public/prism/prism-handlebars.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/public/prism/prism-handlebars.js b/public/prism/prism-handlebars.js
new file mode 100644
index 0000000..e7591fb
--- /dev/null
+++ b/public/prism/prism-handlebars.js
@@ -0,0 +1,44 @@
+(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);