Blame view

bower_components/prism/components/prism-wiki.js 1.54 KB
73bcce88   luigser   COMPONENTS
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
  Prism.languages.wiki = Prism.languages.extend('markup', {
  	'block-comment': {
  		pattern: /(^|[^\\])\/\*[\w\W]*?\*\//,
  		lookbehind: true,
  		alias: 'comment'
  	},
  	'heading': {
  		pattern: /^(=+).+?\1/m,
  		inside: {
  			'punctuation': /^=+|=+$/,
  			'important': /.+/
  		}
  	},
  	'emphasis': {
  		pattern: /('{2,4}).+?\1/,
  		inside: {
  			'bold italic': {
  				pattern: /('''').+?(?=\1)/,
  				lookbehind: true
  			},
  			'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/i,
  		/(?:RFC|PMID) +\d+/,
  		/\[\[.+?\]\]/,
  		/\[.+?\]/
  	],
  	'variable': [
  		/__[A-Z]+__/,
  		/\{{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
  			}
  		}
  	}
  });