aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-textile.min.js
blob: fedfd1befd94cc41387816e1c02767a09c1680e5 (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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
!(function (n) {
  function e(n, e) {
    return RegExp(
      n
        .replace(/<MOD>/g, function () {
          return '(?:\\([^|()\n]+\\)|\\[[^\\]\n]+\\]|\\{[^}\n]+\\})';
        })
        .replace(/<PAR>/g, function () {
          return '(?:\\)|\\((?![^|()\n]+\\)))';
        }),
      e || ''
    );
  }
  var i = {
      css: { pattern: /\{[^{}]+\}/, inside: { rest: n.languages.css } },
      'class-id': {
        pattern: /(\()[^()]+(?=\))/,
        lookbehind: !0,
        alias: 'attr-value',
      },
      lang: {
        pattern: /(\[)[^\[\]]+(?=\])/,
        lookbehind: !0,
        alias: 'attr-value',
      },
      punctuation: /[\\\/]\d+|\S/,
    },
    t = (n.languages.textile = n.languages.extend('markup', {
      phrase: {
        pattern: /(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,
        lookbehind: !0,
        inside: {
          'block-tag': {
            pattern: e('^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\.'),
            inside: {
              modifier: {
                pattern: e('(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)'),
                lookbehind: !0,
                inside: i,
              },
              tag: /^[a-z]\w*/,
              punctuation: /\.$/,
            },
          },
          list: {
            pattern: e('^[*#]+<MOD>*\\s+\\S.*', 'm'),
            inside: {
              modifier: {
                pattern: e('(^[*#]+)<MOD>+'),
                lookbehind: !0,
                inside: i,
              },
              punctuation: /^[*#]+/,
            },
          },
          table: {
            pattern: e(
              '^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|',
              'm'
            ),
            inside: {
              modifier: {
                pattern: e(
                  '(^|\\|(?:\r?\n|\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)'
                ),
                lookbehind: !0,
                inside: i,
              },
              punctuation: /\||^\./,
            },
          },
          inline: {
            pattern: e(
              '(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])'
            ),
            lookbehind: !0,
            inside: {
              bold: {
                pattern: e('(^(\\*\\*?)<MOD>*).+?(?=\\2)'),
                lookbehind: !0,
              },
              italic: {
                pattern: e('(^(__?)<MOD>*).+?(?=\\2)'),
                lookbehind: !0,
              },
              cite: {
                pattern: e('(^\\?\\?<MOD>*).+?(?=\\?\\?)'),
                lookbehind: !0,
                alias: 'string',
              },
              code: {
                pattern: e('(^@<MOD>*).+?(?=@)'),
                lookbehind: !0,
                alias: 'keyword',
              },
              inserted: {
                pattern: e('(^\\+<MOD>*).+?(?=\\+)'),
                lookbehind: !0,
              },
              deleted: { pattern: e('(^-<MOD>*).+?(?=-)'), lookbehind: !0 },
              span: { pattern: e('(^%<MOD>*).+?(?=%)'), lookbehind: !0 },
              modifier: {
                pattern: e('(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+'),
                lookbehind: !0,
                inside: i,
              },
              punctuation: /[*_%?@+\-^~]+/,
            },
          },
          'link-ref': {
            pattern: /^\[[^\]]+\]\S+$/m,
            inside: {
              string: { pattern: /(^\[)[^\]]+(?=\])/, lookbehind: !0 },
              url: { pattern: /(^\])\S+$/, lookbehind: !0 },
              punctuation: /[\[\]]/,
            },
          },
          link: {
            pattern: e('"<MOD>*[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),
            inside: {
              text: { pattern: e('(^"<MOD>*)[^"]+(?=")'), lookbehind: !0 },
              modifier: { pattern: e('(^")<MOD>+'), lookbehind: !0, inside: i },
              url: { pattern: /(:).+/, lookbehind: !0 },
              punctuation: /[":]/,
            },
          },
          image: {
            pattern: e(
              '!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?'
            ),
            inside: {
              source: {
                pattern: e(
                  '(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)'
                ),
                lookbehind: !0,
                alias: 'url',
              },
              modifier: {
                pattern: e('(^!)(?:<MOD>|<PAR>|[<>=])+'),
                lookbehind: !0,
                inside: i,
              },
              url: { pattern: /(:).+/, lookbehind: !0 },
              punctuation: /[!:]/,
            },
          },
          footnote: {
            pattern: /\b\[\d+\]/,
            alias: 'comment',
            inside: { punctuation: /\[|\]/ },
          },
          acronym: {
            pattern: /\b[A-Z\d]+\([^)]+\)/,
            inside: {
              comment: { pattern: /(\()[^()]+(?=\))/, lookbehind: !0 },
              punctuation: /[()]/,
            },
          },
          mark: {
            pattern: /\b\((?:C|R|TM)\)/,
            alias: 'comment',
            inside: { punctuation: /[()]/ },
          },
        },
      },
    })),
    a = t.phrase.inside,
    o = {
      inline: a.inline,
      link: a.link,
      image: a.image,
      footnote: a.footnote,
      acronym: a.acronym,
      mark: a.mark,
    };
  t.tag.pattern =
    /<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;
  var r = a.inline.inside;
  (r.bold.inside = o),
    (r.italic.inside = o),
    (r.inserted.inside = o),
    (r.deleted.inside = o),
    (r.span.inside = o);
  var d = a.table.inside;
  (d.inline = o.inline),
    (d.link = o.link),
    (d.image = o.image),
    (d.footnote = o.footnote),
    (d.acronym = o.acronym),
    (d.mark = o.mark);
})(Prism);