@@ -113,7 +113,7 @@ const ALLOW_CLASS = new Set([
113113 '.task-list-item-checkbox' ,
114114] ) ;
115115
116- function extractStyles ( styles , ast ) {
116+ function extractStyles ( rules , ast ) {
117117 function select ( selector ) {
118118 if ( selector . startsWith ( '.markdown-body' ) ) {
119119 if ( selector . includes ( 'zeroclipboard' ) ) {
@@ -153,7 +153,7 @@ function extractStyles(styles, ast) {
153153 return false ;
154154 }
155155
156- function fix ( selector ) {
156+ function fixSelector ( selector ) {
157157 if ( selector . startsWith ( 'html ' ) || selector . startsWith ( 'body ' ) ) {
158158 return selector . slice ( 5 ) ;
159159 }
@@ -165,15 +165,23 @@ function extractStyles(styles, ast) {
165165 return selector ;
166166 }
167167
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+
168175 for ( const rule of walkRules ( ast ) ) {
169176 if ( rule . declarations . some ( ( { value} ) => value . includes ( 'prettylights' ) ) ) {
170- styles . push ( rule ) ;
177+ rules . push ( rule ) ;
171178 } else {
172179 rule . selectors = rule . selectors
173180 . filter ( selector => select ( selector ) )
174- . map ( selector => fix ( selector ) ) ;
181+ . map ( selector => fixSelector ( selector ) ) ;
175182 if ( rule . selectors . length > 0 ) {
176- styles . push ( rule ) ;
183+ rule . declarations . map ( declaration => fixDeclaration ( declaration ) ) ;
184+ rules . push ( rule ) ;
177185 }
178186 }
179187 }
@@ -220,7 +228,7 @@ function classifyRules(rules) {
220228 for ( const rule of rules ) {
221229 const theme = extractTheme ( rule ) ;
222230 if ( theme ) {
223- result [ extractTheme ( rule ) ] . push ( ...rule . declarations ) ;
231+ result [ theme ] . push ( ...rule . declarations ) ;
224232 } else {
225233 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 ) )
226234 ? [ '.markdown-body' ]
0 commit comments