aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-xeora.js
blob: 2022e096f01901e434f8868f110e01289da2bd1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
(function (Prism) {
  Prism.languages.xeora = Prism.languages.extend('markup', {
    constant: {
      pattern: /\$(?:DomainContents|PageRenderDuration)\$/,
      inside: {
        punctuation: {
          pattern: /\$/,
        },
      },
    },
    variable: {
      pattern: /\$@?(?:#+|[-+*~=^])?[\w.]+\$/,
      inside: {
        punctuation: {
          pattern: /[$.]/,
        },
        operator: {
          pattern: /#+|[-+*~=^@]/,
        },
      },
    },
    'function-inline': {
      pattern:
        /\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,
      inside: {
        variable: {
          pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,
          inside: {
            punctuation: {
              pattern: /[,.|]/,
            },
            operator: {
              pattern: /#+|[-+*~=^@]/,
            },
          },
        },
        punctuation: {
          pattern: /\$\w:|[$:?.,|]/,
        },
      },
      alias: 'function',
    },
    'function-block': {
      pattern:
        /\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,
      inside: {
        punctuation: {
          pattern: /[$:{}?.,|]/,
        },
      },
      alias: 'function',
    },
    'directive-inline': {
      pattern: /\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,
      inside: {
        punctuation: {
          pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,
          inside: {
            tag: {
              pattern: /#\d/,
            },
          },
        },
      },
      alias: 'function',
    },
    'directive-block-open': {
      pattern:
        /\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,
      inside: {
        punctuation: {
          pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,
          inside: {
            tag: {
              pattern: /#\d/,
            },
          },
        },
        attribute: {
          pattern: /![A-Z]+$/,
          inside: {
            punctuation: {
              pattern: /!/,
            },
          },
          alias: 'keyword',
        },
      },
      alias: 'function',
    },
    'directive-block-separator': {
      pattern: /\}:[-\w.]+:\{/,
      inside: {
        punctuation: {
          pattern: /[:{}]/,
        },
      },
      alias: 'function',
    },
    'directive-block-close': {
      pattern: /\}:[-\w.]+\$/,
      inside: {
        punctuation: {
          pattern: /[:{}$]/,
        },
      },
      alias: 'function',
    },
  });

  Prism.languages.insertBefore(
    'inside',
    'punctuation',
    {
      variable: Prism.languages.xeora['function-inline'].inside['variable'],
    },
    Prism.languages.xeora['function-block']
  );

  Prism.languages.xeoracube = Prism.languages.xeora;
})(Prism);