aboutsummaryrefslogtreecommitdiff
path: root/node_modules/prismjs/components/prism-wiki.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/prismjs/components/prism-wiki.js')
-rw-r--r--node_modules/prismjs/components/prism-wiki.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/node_modules/prismjs/components/prism-wiki.js b/node_modules/prismjs/components/prism-wiki.js
new file mode 100644
index 00000000..b5cc0665
--- /dev/null
+++ b/node_modules/prismjs/components/prism-wiki.js
@@ -0,0 +1,81 @@
+Prism.languages.wiki = Prism.languages.extend('markup', {
+ 'block-comment': {
+ pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
+ lookbehind: true,
+ alias: 'comment'
+ },
+ 'heading': {
+ pattern: /^(=+).+?\1/m,
+ inside: {
+ 'punctuation': /^=+|=+$/,
+ 'important': /.+/
+ }
+ },
+ 'emphasis': {
+ // TODO Multi-line
+ pattern: /('{2,5}).+?\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|(?:RFC|PMID) +\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 <nowiki>, <source> and <pre> tags
+ 'nowiki': {
+ pattern: /<(nowiki|pre|source)\b[\s\S]*?>[\s\S]*?<\/\1>/i,
+ inside: {
+ 'tag': {
+ pattern: /<(?:nowiki|pre|source)\b[\s\S]*?>|<\/(?:nowiki|pre|source)>/i,
+ inside: Prism.languages.markup['tag'].inside
+ }
+ }
+ }
+});