UNPKG

reprism

Version:

Modular Syntax highlighting for the web

78 lines (73 loc) 2.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = { language: 'velocity', init: function init(Prism) { (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(?:true|false)\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); } };