Prism.languages.wiki = Prism.languages.extend('markup', { 'block-comment': { pattern: /(^|[^\\])\/\*[\s\S]*?\*\//, lookbehind: true, alias: 'comment', }, heading: { pattern: /^(=+)[^=\r\n].*?\1/m, inside: { punctuation: /^=+|=+$/, important: /.+/, }, }, emphasis: { // TODO Multi-line pattern: /('{2,5}).+?\1/, inside: { 'bold-italic': { pattern: /(''''').+?(?=\1)/, lookbehind: true, alias: ['bold', 'italic'], }, bold: { pattern: /(''')[^'](?:.*?[^'])?(?=\1)/, lookbehind: true, }, italic: { pattern: /('')[^'](?:.*?[^'])?(?=\1)/, lookbehind: true, }, punctuation: /^''+|''+$/, }, }, hr: { pattern: /^-{4,}/m, alias: 'punctuation', }, url: [ /ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i, /\[\[.+?\]\]|\[.+?\]/, ], variable: [ /__[A-Z]+__/, // FIXME Nested structures should be handled // {{formatnum:{{#expr:{{{3}}}}}}} /\{{3}.+?\}{3}/, /\{\{.+?\}\}/, ], symbol: [/^#redirect/im, /~{3,5}/], // Handle table attrs: // {| // ! style="text-align:left;"| Item // |} 'table-tag': { pattern: /((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m, lookbehind: true, inside: { 'table-bar': { pattern: /\|$/, alias: 'punctuation', }, rest: Prism.languages.markup['tag'].inside, }, }, punctuation: /^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m, }); Prism.languages.insertBefore('wiki', 'tag', { // Prevent highlighting inside , and
 tags
  nowiki: {
    pattern: /<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,
    inside: {
      tag: {
        pattern: /<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,
        inside: Prism.languages.markup['tag'].inside,
      },
    },
  },
});
.0.0&id=d67328f866fa469b67e2525556388d4bcc283737'>diffstats
blob: 831c022e904a57c156d890e0bce34ba6a3fe095d (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
Prism.languages.wasm = {
  comment: [
    /\(;[\s\S]*?;\)/,
    {
      pattern: /;;.*/,
      greedy: true,
    },
  ],
  string: {
    pattern: /"(?:\\[\s\S]|[^"\\])*"/,
    greedy: true,
  },
  keyword: [
    {
      pattern: /\b(?:align|offset)=/,
      inside: {
        operator: /=/,
      },
    },
    {
      pattern:
        /\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,
      inside: {
        punctuation: /\./,
      },
    },
    /\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/,
  ],
  variable: /\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,
  number:
    /[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,
  punctuation: /[()]/,
};