@@ -113,7 +113,7 @@ const ALLOW_CLASS = new Set([
113
113
'.task-list-item-checkbox' ,
114
114
] ) ;
115
115
116
- function extractStyles ( styles , ast ) {
116
+ function extractStyles ( rules , ast ) {
117
117
function select ( selector ) {
118
118
if ( selector . startsWith ( '.markdown-body' ) ) {
119
119
if ( selector . includes ( 'zeroclipboard' ) ) {
@@ -153,7 +153,7 @@ function extractStyles(styles, ast) {
153
153
return false ;
154
154
}
155
155
156
- function fix ( selector ) {
156
+ function fixSelector ( selector ) {
157
157
if ( selector . startsWith ( 'html ' ) || selector . startsWith ( 'body ' ) ) {
158
158
return selector . slice ( 5 ) ;
159
159
}
@@ -165,15 +165,23 @@ function extractStyles(styles, ast) {
165
165
return selector ;
166
166
}
167
167
168
+ function fixDeclaration ( declaration ) {
169
+ // 'var(--fgColor-default, var(--color-fg-default))' -> 'var(--color-fg-default)'
170
+ if ( declaration . value . includes ( 'Color' ) ) {
171
+ declaration . value = declaration . value . replace ( / v a r \( [ ^ , ] + , \s * ( v a r \( - - c o l o r - .+ ?\) ) \) / , '$1' ) ;
172
+ }
173
+ }
174
+
168
175
for ( const rule of walkRules ( ast ) ) {
169
176
if ( rule . declarations . some ( ( { value} ) => value . includes ( 'prettylights' ) ) ) {
170
- styles . push ( rule ) ;
177
+ rules . push ( rule ) ;
171
178
} else {
172
179
rule . selectors = rule . selectors
173
180
. filter ( selector => select ( selector ) )
174
- . map ( selector => fix ( selector ) ) ;
181
+ . map ( selector => fixSelector ( selector ) ) ;
175
182
if ( rule . selectors . length > 0 ) {
176
- styles . push ( rule ) ;
183
+ rule . declarations . map ( declaration => fixDeclaration ( declaration ) ) ;
184
+ rules . push ( rule ) ;
177
185
}
178
186
}
179
187
}
@@ -220,7 +228,7 @@ function classifyRules(rules) {
220
228
for ( const rule of rules ) {
221
229
const theme = extractTheme ( rule ) ;
222
230
if ( theme ) {
223
- result [ extractTheme ( rule ) ] . push ( ...rule . declarations ) ;
231
+ result [ theme ] . push ( ...rule . declarations ) ;
224
232
} else {
225
233
rule . selectors = rule . selectors . some ( s => / ^ ( : r o o t | h t m l | b o d y | \[ d a t a - c o l o r - m o d e ] ) $ / . test ( s ) )
226
234
? [ '.markdown-body' ]
0 commit comments