1 | (function (Prism) {
|
---|
2 |
|
---|
3 | var keywords = /\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/;
|
---|
4 |
|
---|
5 | Prism.languages.typoscript = {
|
---|
6 | 'comment': [
|
---|
7 | {
|
---|
8 | // multiline comments /* */
|
---|
9 | pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
|
---|
10 | lookbehind: true
|
---|
11 | },
|
---|
12 | {
|
---|
13 | // double-slash comments - ignored when backslashes or colon is found in front
|
---|
14 | // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol
|
---|
15 | pattern: /(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,
|
---|
16 | lookbehind: true,
|
---|
17 | greedy: true
|
---|
18 | },
|
---|
19 | {
|
---|
20 | // hash comments - ignored when leading quote is found for hex colors in strings
|
---|
21 | pattern: /(^|[^"'])#.*/,
|
---|
22 | lookbehind: true,
|
---|
23 | greedy: true
|
---|
24 | }
|
---|
25 | ],
|
---|
26 | 'function': [
|
---|
27 | {
|
---|
28 | // old include style
|
---|
29 | pattern: /<INCLUDE_TYPOSCRIPT:\s*source\s*=\s*(?:"[^"\r\n]*"|'[^'\r\n]*')\s*>/,
|
---|
30 | inside: {
|
---|
31 | 'string': {
|
---|
32 | pattern: /"[^"\r\n]*"|'[^'\r\n]*'/,
|
---|
33 | inside: {
|
---|
34 | 'keyword': keywords,
|
---|
35 | },
|
---|
36 | },
|
---|
37 | 'keyword': {
|
---|
38 | pattern: /INCLUDE_TYPOSCRIPT/,
|
---|
39 | },
|
---|
40 | },
|
---|
41 | },
|
---|
42 | {
|
---|
43 | // new include style
|
---|
44 | pattern: /@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,
|
---|
45 | inside: {
|
---|
46 | 'string': /"[^"\r\n]*"|'[^'\r\n]*'/,
|
---|
47 | },
|
---|
48 | }
|
---|
49 | ],
|
---|
50 | 'string': {
|
---|
51 | pattern: /^([^=]*=[< ]?)(?:(?!\]\n).)*/,
|
---|
52 | lookbehind: true,
|
---|
53 | inside: {
|
---|
54 | 'function': /\{\$.*\}/, // constants include
|
---|
55 | 'keyword': keywords,
|
---|
56 | 'number': /^\d+$/,
|
---|
57 | 'punctuation': /[,|:]/,
|
---|
58 | }
|
---|
59 | },
|
---|
60 | 'keyword': keywords,
|
---|
61 | 'number': {
|
---|
62 | // special highlighting for indexes of arrays in tags
|
---|
63 | pattern: /\b\d+\s*[.{=]/,
|
---|
64 | inside: {
|
---|
65 | 'operator': /[.{=]/,
|
---|
66 | }
|
---|
67 | },
|
---|
68 | 'tag': {
|
---|
69 | pattern: /\.?[-\w\\]+\.?/,
|
---|
70 | inside: {
|
---|
71 | 'punctuation': /\./,
|
---|
72 | }
|
---|
73 | },
|
---|
74 | 'punctuation': /[{}[\];(),.:|]/,
|
---|
75 | 'operator': /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,
|
---|
76 | };
|
---|
77 |
|
---|
78 | Prism.languages.tsconfig = Prism.languages.typoscript;
|
---|
79 |
|
---|
80 | }(Prism));
|
---|