Skip to content

Commit 7fd79d3

Browse files
authored
Remove unwanted CSS variables (#25)
1 parent 0419bd9 commit 7fd79d3

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

index.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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(/var\([^,]+,\s*(var\(--color-.+?\))\)/, '$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 => /^(:root|html|body|\[data-color-mode])$/.test(s))
226234
? ['.markdown-body']

0 commit comments

Comments
 (0)