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-sass.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-sass.js')
| -rw-r--r-- | node_modules/prismjs/components/prism-sass.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/node_modules/prismjs/components/prism-sass.js b/node_modules/prismjs/components/prism-sass.js new file mode 100644 index 00000000..f1708304 --- /dev/null +++ b/node_modules/prismjs/components/prism-sass.js @@ -0,0 +1,73 @@ +(function(Prism) { + Prism.languages.sass = Prism.languages.extend('css', { + // Sass comments don't need to be closed, only indented + 'comment': { + pattern: /^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m, + lookbehind: true + } + }); + + Prism.languages.insertBefore('sass', 'atrule', { + // We want to consume the whole line + 'atrule-line': { + // Includes support for = and + shortcuts + pattern: /^(?:[ \t]*)[@+=].+/m, + inside: { + 'atrule': /(?:@[\w-]+|[+=])/m + } + } + }); + delete Prism.languages.sass.atrule; + + + var variable = /\$[-\w]+|#\{\$[-\w]+\}/; + var operator = [ + /[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/, + { + pattern: /(\s+)-(?=\s)/, + lookbehind: true + } + ]; + + Prism.languages.insertBefore('sass', 'property', { + // We want to consume the whole line + 'variable-line': { + pattern: /^[ \t]*\$.+/m, + inside: { + 'punctuation': /:/, + 'variable': variable, + 'operator': operator + } + }, + // We want to consume the whole line + 'property-line': { + pattern: /^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m, + inside: { + 'property': [ + /[^:\s]+(?=\s*:)/, + { + pattern: /(:)[^:\s]+/, + lookbehind: true + } + ], + 'punctuation': /:/, + 'variable': variable, + 'operator': operator, + 'important': Prism.languages.sass.important + } + } + }); + delete Prism.languages.sass.property; + delete Prism.languages.sass.important; + + // Now that whole lines for other patterns are consumed, + // what's left should be selectors + delete Prism.languages.sass.selector; + Prism.languages.insertBefore('sass', 'punctuation', { + 'selector': { + pattern: /([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/, + lookbehind: true + } + }); + +}(Prism));
\ No newline at end of file |
