summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-velocity.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-velocity.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-velocity.js')
-rw-r--r--public/prism/prism-velocity.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/public/prism/prism-velocity.js b/public/prism/prism-velocity.js
new file mode 100644
index 0000000..0799e79
--- /dev/null
+++ b/public/prism/prism-velocity.js
@@ -0,0 +1,74 @@
+(function (Prism) {
+ Prism.languages.velocity = Prism.languages.extend('markup', {});
+
+ var velocity = {
+ variable: {
+ pattern:
+ /(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,
+ lookbehind: true,
+ inside: {}, // See below
+ },
+ string: {
+ pattern: /"[^"]*"|'[^']*'/,
+ greedy: true,
+ },
+ number: /\b\d+\b/,
+ boolean: /\b(?:false|true)\b/,
+ operator: /[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,
+ punctuation: /[(){}[\]:,.]/,
+ };
+
+ velocity.variable.inside = {
+ string: velocity['string'],
+ function: {
+ pattern: /([^\w-])[a-z][\w-]*(?=\()/,
+ lookbehind: true,
+ },
+ number: velocity['number'],
+ boolean: velocity['boolean'],
+ punctuation: velocity['punctuation'],
+ };
+
+ Prism.languages.insertBefore('velocity', 'comment', {
+ unparsed: {
+ pattern: /(^|[^\\])#\[\[[\s\S]*?\]\]#/,
+ lookbehind: true,
+ greedy: true,
+ inside: {
+ punctuation: /^#\[\[|\]\]#$/,
+ },
+ },
+ 'velocity-comment': [
+ {
+ pattern: /(^|[^\\])#\*[\s\S]*?\*#/,
+ lookbehind: true,
+ greedy: true,
+ alias: 'comment',
+ },
+ {
+ pattern: /(^|[^\\])##.*/,
+ lookbehind: true,
+ greedy: true,
+ alias: 'comment',
+ },
+ ],
+ directive: {
+ pattern:
+ /(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,
+ lookbehind: true,
+ inside: {
+ keyword: {
+ pattern: /^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,
+ inside: {
+ punctuation: /[{}]/,
+ },
+ },
+ rest: velocity,
+ },
+ },
+ variable: velocity['variable'],
+ });
+
+ Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =
+ Prism.languages.velocity;
+})(Prism);