Blame view

bower_components/prism/components/prism-wiki.js 1.66 KB
73bcce88   luigser   COMPONENTS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  Prism.languages.wiki = Prism.languages.extend('markup', {
  	'block-comment': {
  		pattern: /(^|[^\\])\/\*[\w\W]*?\*\//,
  		lookbehind: true,
  		alias: 'comment'
  	},
  	'heading': {
  		pattern: /^(=+).+?\1/m,
  		inside: {
  			'punctuation': /^=+|=+$/,
  			'important': /.+/
  		}
  	},
  	'emphasis': {
eb240478   Luigi Serra   public room cards...
15
16
  		// TODO Multi-line
  		pattern: /('{2,5}).+?\1/,
73bcce88   luigser   COMPONENTS
17
18
  		inside: {
  			'bold italic': {
eb240478   Luigi Serra   public room cards...
19
  				pattern: /(''''').+?(?=\1)/,
73bcce88   luigser   COMPONENTS
20
21
22
  				lookbehind: true
  			},
  			'bold': {
eb240478   Luigi Serra   public room cards...
23
  				pattern: /(''')[^'](?:.*?[^'])?(?=\1)/,
73bcce88   luigser   COMPONENTS
24
25
26
  				lookbehind: true
  			},
  			'italic': {
eb240478   Luigi Serra   public room cards...
27
  				pattern: /('')[^'](?:.*?[^'])?(?=\1)/,
73bcce88   luigser   COMPONENTS
28
29
30
31
32
33
34
35
36
37
  				lookbehind: true
  			},
  			'punctuation': /^''+|''+$/
  		}
  	},
  	'hr': {
  		pattern: /^-{4,}/m,
  		alias: 'punctuation'
  	},
  	'url': [
eb240478   Luigi Serra   public room cards...
38
39
  		/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i,
  		/\[\[.+?\]\]|\[.+?\]/
73bcce88   luigser   COMPONENTS
40
41
42
  	],
  	'variable': [
  		/__[A-Z]+__/,
eb240478   Luigi Serra   public room cards...
43
44
  		// FIXME Nested structures should be handled
  		// {{formatnum:{{#expr:{{{3}}}}}}}
73bcce88   luigser   COMPONENTS
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
  		/\{{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 <nowiki>, <source> and <pre> tags
  	'nowiki': {
  		pattern: /<(nowiki|pre|source)\b[\w\W]*?>[\w\W]*?<\/\1>/i,
  		inside: {
  			'tag': {
  				pattern: /<(?:nowiki|pre|source)\b[\w\W]*?>|<\/(?:nowiki|pre|source)>/i,
  				inside: Prism.languages.markup['tag'].inside
  			}
  		}
  	}
  });