aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-ftl.min.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/prism/prism-ftl.min.js')
-rw-r--r--public/prism/prism-ftl.min.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/public/prism/prism-ftl.min.js b/public/prism/prism-ftl.min.js
new file mode 100644
index 0000000..2b1df40
--- /dev/null
+++ b/public/prism/prism-ftl.min.js
@@ -0,0 +1,100 @@
+!(function (n) {
+ for (
+ var i =
+ '[^<()"\']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*--\x3e|"(?:[^\\\\"]|\\\\.)*"|\'(?:[^\\\\\']|\\\\.)*\'',
+ e = 0;
+ e < 2;
+ e++
+ )
+ i = i.replace(/<expr>/g, function () {
+ return i;
+ });
+ i = i.replace(/<expr>/g, '[^\\s\\S]');
+ var t = {
+ comment: /<#--[\s\S]*?-->/,
+ string: [
+ { pattern: /\br("|')(?:(?!\1)[^\\]|\\.)*\1/, greedy: !0 },
+ {
+ pattern: RegExp(
+ '("|\')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1'.replace(
+ /<expr>/g,
+ function () {
+ return i;
+ }
+ )
+ ),
+ greedy: !0,
+ inside: {
+ interpolation: {
+ pattern: RegExp(
+ '((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}'.replace(
+ /<expr>/g,
+ function () {
+ return i;
+ }
+ )
+ ),
+ lookbehind: !0,
+ inside: {
+ 'interpolation-punctuation': {
+ pattern: /^\$\{|\}$/,
+ alias: 'punctuation',
+ },
+ rest: null,
+ },
+ },
+ },
+ },
+ ],
+ keyword: /\b(?:as)\b/,
+ boolean: /\b(?:false|true)\b/,
+ 'builtin-function': {
+ pattern: /((?:^|[^?])\?\s*)\w+/,
+ lookbehind: !0,
+ alias: 'function',
+ },
+ function: /\b\w+(?=\s*\()/,
+ number: /\b\d+(?:\.\d+)?\b/,
+ operator:
+ /\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,
+ punctuation: /[,;.:()[\]{}]/,
+ };
+ (t.string[1].inside.interpolation.inside.rest = t),
+ (n.languages.ftl = {
+ 'ftl-comment': { pattern: /^<#--[\s\S]*/, alias: 'comment' },
+ 'ftl-directive': {
+ pattern: /^<[\s\S]+>$/,
+ inside: {
+ directive: {
+ pattern: /(^<\/?)[#@][a-z]\w*/i,
+ lookbehind: !0,
+ alias: 'keyword',
+ },
+ punctuation: /^<\/?|\/?>$/,
+ content: { pattern: /\s*\S[\s\S]*/, alias: 'ftl', inside: t },
+ },
+ },
+ 'ftl-interpolation': {
+ pattern: /^\$\{[\s\S]*\}$/,
+ inside: {
+ punctuation: /^\$\{|\}$/,
+ content: { pattern: /\s*\S[\s\S]*/, alias: 'ftl', inside: t },
+ },
+ },
+ }),
+ n.hooks.add('before-tokenize', function (e) {
+ var t = RegExp(
+ '<#--[^]*?--\x3e|</?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}'.replace(
+ /<expr>/g,
+ function () {
+ return i;
+ }
+ ),
+ 'gi'
+ );
+ n.languages['markup-templating'].buildPlaceholders(e, 'ftl', t);
+ }),
+ n.hooks.add('after-tokenize', function (e) {
+ n.languages['markup-templating'].tokenizePlaceholders(e, 'ftl');
+ });
+})(Prism);