diff options
Diffstat (limited to 'public/prism/prism-velocity.js')
| -rw-r--r-- | public/prism/prism-velocity.js | 74 |
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); |
