diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/prismjs/components/prism-wiki.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-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.js | 81 |
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 + } + } + } +}); |
