UNPKG

1.53 kBJavaScriptView Raw
1(function (Prism) {
2
3 var string = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;
4
5 Prism.languages.css = {
6 'comment': /\/\*[\s\S]*?\*\//,
7 'atrule': {
8 pattern: /@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,
9 inside: {
10 'rule': /^@[\w-]+/,
11 'selector-function-argument': {
12 pattern: /(\bselector\s*\((?!\s*\))\s*)(?:[^()]|\((?:[^()]|\([^()]*\))*\))+?(?=\s*\))/,
13 lookbehind: true,
14 alias: 'selector'
15 }
16 // See rest below
17 }
18 },
19 'url': {
20 pattern: RegExp('url\\((?:' + string.source + '|[^\n\r()]*)\\)', 'i'),
21 greedy: true,
22 inside: {
23 'function': /^url/i,
24 'punctuation': /^\(|\)$/
25 }
26 },
27 'selector': RegExp('[^{}\\s](?:[^{};"\']|' + string.source + ')*?(?=\\s*\\{)'),
28 'string': {
29 pattern: string,
30 greedy: true
31 },
32 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,
33 'important': /!important\b/i,
34 'function': /[-a-z0-9]+(?=\()/i,
35 'punctuation': /[(){};:,]/
36 };
37
38 Prism.languages.css['atrule'].inside.rest = Prism.languages.css;
39
40 var markup = Prism.languages.markup;
41 if (markup) {
42 markup.tag.addInlined('style', 'css');
43
44 Prism.languages.insertBefore('inside', 'attr-value', {
45 'style-attr': {
46 pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,
47 inside: {
48 'attr-name': {
49 pattern: /^\s*style/i,
50 inside: markup.tag.inside
51 },
52 'punctuation': /^\s*=\s*['"]|['"]\s*$/,
53 'attr-value': {
54 pattern: /.+/i,
55 inside: Prism.languages.css
56 }
57 },
58 alias: 'language-css'
59 }
60 }, markup.tag);
61 }
62
63}(Prism));