aboutsummaryrefslogtreecommitdiff
path: root/node_modules/prismjs/components/prism-markdown.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-markdown.js
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/prismjs/components/prism-markdown.js')
-rw-r--r--node_modules/prismjs/components/prism-markdown.js120
1 files changed, 120 insertions, 0 deletions
diff --git a/node_modules/prismjs/components/prism-markdown.js b/node_modules/prismjs/components/prism-markdown.js
new file mode 100644
index 00000000..8b637804
--- /dev/null
+++ b/node_modules/prismjs/components/prism-markdown.js
@@ -0,0 +1,120 @@
+Prism.languages.markdown = Prism.languages.extend('markup', {});
+Prism.languages.insertBefore('markdown', 'prolog', {
+ 'blockquote': {
+ // > ...
+ pattern: /^>(?:[\t ]*>)*/m,
+ alias: 'punctuation'
+ },
+ 'code': [
+ {
+ // Prefixed by 4 spaces or 1 tab
+ pattern: /^(?: {4}|\t).+/m,
+ alias: 'keyword'
+ },
+ {
+ // `code`
+ // ``code``
+ pattern: /``.+?``|`[^`\n]+`/,
+ alias: 'keyword'
+ }
+ ],
+ 'title': [
+ {
+ // title 1
+ // =======
+
+ // title 2
+ // -------
+ pattern: /\w+.*(?:\r?\n|\r)(?:==+|--+)/,
+ alias: 'important',
+ inside: {
+ punctuation: /==+$|--+$/
+ }
+ },
+ {
+ // # title 1
+ // ###### title 6
+ pattern: /(^\s*)#+.+/m,
+ lookbehind: true,
+ alias: 'important',
+ inside: {
+ punctuation: /^#+|#+$/
+ }
+ }
+ ],
+ 'hr': {
+ // ***
+ // ---
+ // * * *
+ // -----------
+ pattern: /(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,
+ lookbehind: true,
+ alias: 'punctuation'
+ },
+ 'list': {
+ // * item
+ // + item
+ // - item
+ // 1. item
+ pattern: /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,
+ lookbehind: true,
+ alias: 'punctuation'
+ },
+ 'url-reference': {
+ // [id]: http://example.com "Optional title"
+ // [id]: http://example.com 'Optional title'
+ // [id]: http://example.com (Optional title)
+ // [id]: <http://example.com> "Optional title"
+ pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,
+ inside: {
+ 'variable': {
+ pattern: /^(!?\[)[^\]]+/,
+ lookbehind: true
+ },
+ 'string': /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,
+ 'punctuation': /^[\[\]!:]|[<>]/
+ },
+ alias: 'url'
+ },
+ 'bold': {
+ // **strong**
+ // __strong__
+
+ // Allow only one line break
+ pattern: /(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,
+ lookbehind: true,
+ inside: {
+ 'punctuation': /^\*\*|^__|\*\*$|__$/
+ }
+ },
+ 'italic': {
+ // *em*
+ // _em_
+
+ // Allow only one line break
+ pattern: /(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,
+ lookbehind: true,
+ inside: {
+ 'punctuation': /^[*_]|[*_]$/
+ }
+ },
+ 'url': {
+ // [example](http://example.com "Optional title")
+ // [example] [id]
+ pattern: /!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/,
+ inside: {
+ 'variable': {
+ pattern: /(!?\[)[^\]]+(?=\]$)/,
+ lookbehind: true
+ },
+ 'string': {
+ pattern: /"(?:\\.|[^"\\])*"(?=\)$)/
+ }
+ }
+ }
+});
+
+Prism.languages.markdown['bold'].inside['url'] = Prism.languages.markdown['url'];
+Prism.languages.markdown['italic'].inside['url'] = Prism.languages.markdown['url'];
+Prism.languages.markdown['bold'].inside['italic'] = Prism.languages.markdown['italic'];
+Prism.languages.markdown['italic'].inside['bold'] = Prism.languages.markdown['bold']; \ No newline at end of file