aboutsummaryrefslogtreecommitdiff
path: root/node_modules/prismjs/components/prism-wiki.js
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/prismjs/components/prism-wiki.js
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
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
+ }
+ }
+ }
+});