OLD | NEW |
(Empty) | |
| 1 (function() { |
| 2 |
| 3 if ( |
| 4 typeof self !== 'undefined' && !self.Prism || |
| 5 typeof global !== 'undefined' && !global.Prism |
| 6 ) { |
| 7 return; |
| 8 } |
| 9 |
| 10 var languages = { |
| 11 'css': true, |
| 12 'less': true, |
| 13 'sass': [ |
| 14 { |
| 15 lang: 'sass', |
| 16 inside: 'inside', |
| 17 before: 'punctuation', |
| 18 root: Prism.languages.sass && Prism.languages.sa
ss['variable-line'] |
| 19 }, |
| 20 { |
| 21 lang: 'sass', |
| 22 inside: 'inside', |
| 23 root: Prism.languages.sass && Prism.languages.sa
ss['property-line'] |
| 24 } |
| 25 ], |
| 26 'scss': true, |
| 27 'stylus': [ |
| 28 { |
| 29 lang: 'stylus', |
| 30 before: 'hexcode', |
| 31 inside: 'rest', |
| 32 root: Prism.languages.stylus && Prism.languages.
stylus['property-declaration'].inside |
| 33 }, |
| 34 { |
| 35 lang: 'stylus', |
| 36 before: 'hexcode', |
| 37 inside: 'rest', |
| 38 root: Prism.languages.stylus && Prism.languages.
stylus['variable-declaration'].inside |
| 39 } |
| 40 ] |
| 41 }; |
| 42 |
| 43 Prism.hooks.add('before-highlight', function (env) { |
| 44 if (env.language && languages[env.language] && !languages[env.la
nguage].initialized) { |
| 45 var lang = languages[env.language]; |
| 46 if (Prism.util.type(lang) !== 'Array') { |
| 47 lang = [lang]; |
| 48 } |
| 49 lang.forEach(function(lang) { |
| 50 var before, inside, root, skip; |
| 51 if (lang === true) { |
| 52 before = 'important'; |
| 53 inside = env.language; |
| 54 lang = env.language; |
| 55 } else { |
| 56 before = lang.before || 'important'; |
| 57 inside = lang.inside || lang.lang; |
| 58 root = lang.root || Prism.languages; |
| 59 skip = lang.skip; |
| 60 lang = env.language; |
| 61 } |
| 62 |
| 63 if (!skip && Prism.languages[lang]) { |
| 64 Prism.languages.insertBefore(inside, bef
ore, { |
| 65 'easing': /\bcubic-bezier\((?:-?
\d*\.?\d+,\s*){3}-?\d*\.?\d+\)\B|\b(?:linear|ease(?:-in)?(?:-out)?)(?=\s|[;}]|$)
/i |
| 66 }, root); |
| 67 env.grammar = Prism.languages[lang]; |
| 68 |
| 69 languages[env.language] = {initialized:
true}; |
| 70 } |
| 71 }); |
| 72 } |
| 73 }); |
| 74 |
| 75 if (Prism.plugins.Previewer) { |
| 76 new Prism.plugins.Previewer('easing', function (value) { |
| 77 |
| 78 value = { |
| 79 'linear': '0,0,1,1', |
| 80 'ease': '.25,.1,.25,1', |
| 81 'ease-in': '.42,0,1,1', |
| 82 'ease-out': '0,0,.58,1', |
| 83 'ease-in-out':'.42,0,.58,1' |
| 84 }[value] || value; |
| 85 |
| 86 var p = value.match(/-?\d*\.?\d+/g); |
| 87 |
| 88 if(p.length === 4) { |
| 89 p = p.map(function(p, i) { return (i % 2? 1 - p
: p) * 100; }); |
| 90 |
| 91 this.querySelector('path').setAttribute('d', 'M0
,100 C' + p[0] + ',' + p[1] + ', ' + p[2] + ',' + p[3] + ', 100,0'); |
| 92 |
| 93 var lines = this.querySelectorAll('line'); |
| 94 lines[0].setAttribute('x2', p[0]); |
| 95 lines[0].setAttribute('y2', p[1]); |
| 96 lines[1].setAttribute('x2', p[2]); |
| 97 lines[1].setAttribute('y2', p[3]); |
| 98 |
| 99 return true; |
| 100 } |
| 101 |
| 102 return false; |
| 103 }, '*', function () { |
| 104 this._elt.innerHTML = '<svg viewBox="-20 -20 140 140" wi
dth="100" height="100">' + |
| 105 '<defs>' + |
| 106 '<marker id="prism-previewer-easing-mark
er" viewBox="0 0 4 4" refX="2" refY="2" markerUnits="strokeWidth">' + |
| 107 '<circle cx="2" cy="2" r="1.5" /
>' + |
| 108 '</marker>' + |
| 109 '</defs>' + |
| 110 '<path d="M0,100 C20,50, 40,30, 100,0" />' + |
| 111 '<line x1="0" y1="100" x2="20" y2="50" marker-st
art="url(' + location.href + '#prism-previewer-easing-marker)" marker-end="url('
+ location.href + '#prism-previewer-easing-marker)" />' + |
| 112 '<line x1="100" y1="0" x2="40" y2="30" marker-st
art="url(' + location.href + '#prism-previewer-easing-marker)" marker-end="url('
+ location.href + '#prism-previewer-easing-marker)" />' + |
| 113 '</svg>'; |
| 114 }); |
| 115 } |
| 116 |
| 117 }()); |
OLD | NEW |