diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 | 
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 | 
| commit | a98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch) | |
| tree | 542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-css-extras.js | |
| parent | ab355897a12b7bda1089a44de326d41455a0f7a3 (diff) | |
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-css-extras.js')
| -rw-r--r-- | public/prism/prism-css-extras.js | 123 | 
1 files changed, 123 insertions, 0 deletions
| diff --git a/public/prism/prism-css-extras.js b/public/prism/prism-css-extras.js new file mode 100644 index 0000000..08482cf --- /dev/null +++ b/public/prism/prism-css-extras.js @@ -0,0 +1,123 @@ +(function (Prism) { +  var string = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/; +  var selectorInside; + +  Prism.languages.css.selector = { +    pattern: Prism.languages.css.selector.pattern, +    lookbehind: true, +    inside: (selectorInside = { +      'pseudo-element': +        /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/, +      'pseudo-class': /:[-\w]+/, +      class: /\.[-\w]+/, +      id: /#[-\w]+/, +      attribute: { +        pattern: RegExp('\\[(?:[^[\\]"\']|' + string.source + ')*\\]'), +        greedy: true, +        inside: { +          punctuation: /^\[|\]$/, +          'case-sensitivity': { +            pattern: /(\s)[si]$/i, +            lookbehind: true, +            alias: 'keyword', +          }, +          namespace: { +            pattern: /^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/, +            lookbehind: true, +            inside: { +              punctuation: /\|$/, +            }, +          }, +          'attr-name': { +            pattern: /^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/, +            lookbehind: true, +          }, +          'attr-value': [ +            string, +            { +              pattern: /(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/, +              lookbehind: true, +            }, +          ], +          operator: /[|~*^$]?=/, +        }, +      }, +      'n-th': [ +        { +          pattern: /(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/, +          lookbehind: true, +          inside: { +            number: /[\dn]+/, +            operator: /[+-]/, +          }, +        }, +        { +          pattern: /(\(\s*)(?:even|odd)(?=\s*\))/i, +          lookbehind: true, +        }, +      ], +      combinator: />|\+|~|\|\|/, + +      // the `tag` token has been existed and removed. +      // because we can't find a perfect tokenize to match it. +      // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first. + +      punctuation: /[(),]/, +    }), +  }; + +  Prism.languages.css['atrule'].inside['selector-function-argument'].inside = +    selectorInside; + +  Prism.languages.insertBefore('css', 'property', { +    variable: { +      pattern: +        /(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i, +      lookbehind: true, +    }, +  }); + +  var unit = { +    pattern: /(\b\d+)(?:%|[a-z]+(?![\w-]))/, +    lookbehind: true, +  }; +  // 123 -123 .123 -.123 12.3 -12.3 +  var number = { +    pattern: /(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/, +    lookbehind: true, +  }; + +  Prism.languages.insertBefore('css', 'function', { +    operator: { +      pattern: /(\s)[+\-*\/](?=\s)/, +      lookbehind: true, +    }, +    // CAREFUL! +    // Previewers and Inline color use hexcode and color. +    hexcode: { +      pattern: /\B#[\da-f]{3,8}\b/i, +      alias: 'color', +    }, +    color: [ +      { +        pattern: +          /(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i, +        lookbehind: true, +      }, +      { +        pattern: +          /\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i, +        inside: { +          unit: unit, +          number: number, +          function: /[\w-]+(?=\()/, +          punctuation: /[(),]/, +        }, +      }, +    ], +    // it's important that there is no boundary assertion after the hex digits +    entity: /\\[\da-f]{1,8}/i, +    unit: unit, +    number: number, +  }); +})(Prism); | 
