Moved CSS rules to an extras file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
diff --git a/components/prism-css-extras.js b/components/prism-css-extras.js
new file mode 100644
index 0000000..d7b1a54
--- /dev/null
+++ b/components/prism-css-extras.js
@@ -0,0 +1,13 @@
+Prism.languages.css.selector = {
+ pattern: /[^\{\}\s][^\{\}]*(?=\s*\{)/g,
+ inside: {
+ 'pseudo': /::?[-a-z0-9]+/g
+ }
+};
+
+Prism.languages.insertBefore('css', 'ignore', {
+ 'pseudo': /::?[-a-z0-9]+/g,
+ 'hexcode': /#[0-9a-f]{3,6}/gi,
+ 'number': /[0-9%\.]+/g,
+ 'function': /(attr|calc|cross-fade|cycle|element|hsl|hsla|image|lang|linear-gradient|matrix|matrix3d|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotatex|rotatey|rotatez|rotate3d|scale|scalex|scaley|scalez|scale3d|skew|skewx|skewy|steps|translate|translatex|translatey|translatez|translate3d|url|var)/ig
+});
\ No newline at end of file
diff --git a/components/prism-css-extras.min.js b/components/prism-css-extras.min.js
new file mode 100644
index 0000000..d01c19e
--- /dev/null
+++ b/components/prism-css-extras.min.js
@@ -0,0 +1 @@
+Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/g,inside:{pseudo:/::?[-a-z0-9]+/g}};Prism.languages.insertBefore("css","ignore",{pseudo:/::?[-a-z0-9]+/g,hexcode:/#[0-9a-f]{3,6}/gi,number:/[0-9%\.]+/g,"function":/(attr|calc|cross-fade|cycle|element|hsl|hsla|image|lang|linear-gradient|matrix|matrix3d|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotatex|rotatey|rotatez|rotate3d|scale|scalex|scaley|scalez|scale3d|skew|skewx|skewy|steps|translate|translatex|translatey|translatez|translate3d|url|var)/ig});
\ No newline at end of file
diff --git a/components/prism-css.js b/components/prism-css.js
index 4d75068..77f94d4 100644
--- a/components/prism-css.js
+++ b/components/prism-css.js
@@ -2,18 +2,10 @@ Prism.languages.css = {
'comment': /\/\*[\w\W]*?\*\//g,
'atrule': /@[\w-]+?(\s+[^;{]+)?(?=\s*{|\s*;)/gi,
'url': /url\((["']?).*?\1\)/gi,
- 'selector': {
- pattern: /[^\{\}\s][^\{\}]*(?=\s*\{)/g,
- inside: {
- 'pseudo': /:[-a-z0-9]+/g
- }
- },
- 'string': /("|')(\\?.)*?\1/g,
+ 'selector': /[^\{\}\s][^\{\}]*(?=\s*\{)/g,
'property': /(\b|\B)[a-z-]+(?=\s*:)/ig,
+ 'string': /("|')(\\?.)*?\1/g,
'important': /\B!important\b/gi,
- 'hexcode': /#[0-9a-f]{3,6}/gi,
- 'number': /[0-9%\.]+/g,
- 'function': /(attr|calc|cross-fade|cycle|element|hsl|hsla|image|lang|linear-gradient|matrix|matrix3d|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotatex|rotatey|rotatez|rotate3d|scale|scalex|scaley|scalez|scale3d|skew|skewx|skewy|steps|translate|translatex|translatey|translatez|translate3d|url|var)/ig,
'ignore': /&(lt|gt|amp);/gi,
'punctuation': /[\{\};:]/g
};
diff --git a/components/prism-css.min.js b/components/prism-css.min.js
index 0587486..7619dfb 100644
--- a/components/prism-css.min.js
+++ b/components/prism-css.min.js
@@ -1 +1 @@
-Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:/@[\w-]+?(\s+[^;{]+)?(?=\s*{|\s*;)/gi,url:/url\((["']?).*?\1\)/gi,selector:{pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/g,inside:{pseudo:/:[-a-z0-9]+/g}},string:/("|')(\\?.)*?\1/g,property:/(\b|\B)[a-z-]+(?=\s*:)/ig,important:/\B!important\b/gi,hexcode:/#[0-9a-f]{3,6}/gi,number:/[0-9%\.]+/g,"function":/(attr|calc|cross-fade|cycle|element|hsl|hsla|image|lang|linear-gradient|matrix|matrix3d|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotatex|rotatey|rotatez|rotate3d|scale|scalex|scaley|scalez|scale3d|skew|skewx|skewy|steps|translate|translatex|translatey|translatez|translate3d|url|var)/ig,ignore:/&(lt|gt|amp);/gi,punctuation:/[\{\};:]/g};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/(<|<)style[\w\W]*?(>|>)[\w\W]*?(<|<)\/style(>|>)/ig,inside:{tag:{pattern:/(<|<)style[\w\W]*?(>|>)|(<|<)\/style(>|>)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});
\ No newline at end of file
+Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:/@[\w-]+?(\s+[^;{]+)?(?=\s*{|\s*;)/gi,url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\}]*(?=\s*\{)/g,property:/(\b|\B)[a-z-]+(?=\s*:)/ig,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,ignore:/&(lt|gt|amp);/gi,punctuation:/[\{\};:]/g};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/(<|<)style[\w\W]*?(>|>)[\w\W]*?(<|<)\/style(>|>)/ig,inside:{tag:{pattern:/(<|<)style[\w\W]*?(>|>)|(<|<)\/style(>|>)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});
\ No newline at end of file
diff --git a/examples.html b/examples.html
index 3aa0589..d993166 100644
--- a/examples.html
+++ b/examples.html
@@ -165,6 +165,7 @@ ol {}</code></pre>
width: 100%;
height: 25px;
color: #000;
+ background: url("data:image/png;base64,SOMEFAKEHASH");
}
div:after {
diff --git a/prism.js b/prism.js
index c280adc..a58b3e6 100644
--- a/prism.js
+++ b/prism.js
@@ -408,18 +408,10 @@ Prism.languages.css = {
'comment': /\/\*[\w\W]*?\*\//g,
'atrule': /@[\w-]+?(\s+[^;{]+)?(?=\s*{|\s*;)/gi,
'url': /url\((["']?).*?\1\)/gi,
- 'selector': {
- pattern: /[^\{\}\s][^\{\}]*(?=\s*\{)/g,
- inside: {
- 'pseudo': /:[-a-z0-9]+/g
- }
- },
- 'string': /("|')(\\?.)*?\1/g,
+ 'selector': /[^\{\}\s][^\{\}]*(?=\s*\{)/g,
'property': /(\b|\B)[a-z-]+(?=\s*:)/ig,
+ 'string': /("|')(\\?.)*?\1/g,
'important': /\B!important\b/gi,
- 'hexcode': /#[0-9a-f]{3,6}/gi,
- 'number': /[0-9%\.]+/g,
- 'function': /(attr|calc|cross-fade|cycle|element|hsl|hsla|image|lang|linear-gradient|matrix|matrix3d|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotatex|rotatey|rotatez|rotate3d|scale|scalex|scaley|scalez|scale3d|skew|skewx|skewy|steps|translate|translatex|translatey|translatez|translate3d|url|var)/ig,
'ignore': /&(lt|gt|amp);/gi,
'punctuation': /[\{\};:]/g
};
@@ -439,6 +431,20 @@ if (Prism.languages.markup) {
});
}
+Prism.languages.css.selector = {
+ pattern: /[^\{\}\s][^\{\}]*(?=\s*\{)/g,
+ inside: {
+ 'pseudo': /::?[-a-z0-9]+/g
+ }
+};
+
+Prism.languages.insertBefore('css', 'ignore', {
+ 'hexcode': /#[0-9a-f]{3,6}/gi,
+ 'entity': /\\[\da-f]{1,8}/gi,
+ 'number': /[0-9%\.]+/g,
+ 'function': /(attr|calc|cross-fade|cycle|element|hsl|hsla|image|lang|linear-gradient|matrix|matrix3d|perspective|radial-gradient|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotatex|rotatey|rotatez|rotate3d|scale|scalex|scaley|scalez|scale3d|skew|skewx|skewy|steps|translate|translatex|translatey|translatez|translate3d|url|var)/ig
+});
+
/* **********************************************
Begin prism-clike.js
********************************************** */