| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/usr/bin/env node
- /**
- * D23: completion-rate.vue 完成率页 flat 色收编全局令牌 (debt 60 -> 0)
- * $c-comp-* 局部色阶 -> uni.scss $flat-* 全局令牌;移除页面 palette 声明
- */
- const fs = require('fs');
- const F = 'pages/stats/completion-rate.vue';
- let src = fs.readFileSync(F, 'utf8');
- const MAP = [
- ['$c-comp-bg', '$flat-bg'],
- ['$c-comp-card', '$flat-card'],
- ['$c-comp-warm', '$flat-warm'],
- ['$c-comp-done-deep', '$flat-teal-deep'], // 先长后短
- ['$c-comp-done', '$flat-teal'],
- ['$c-comp-ink', '$flat-ink'],
- ['$c-comp-muted2', '$flat-muted-2'],
- ['$c-comp-muted', '$flat-muted'],
- ['$c-comp-danger-line', '$flat-danger-line'],
- ['$c-comp-orange-text', '$flat-orange-text'],
- ['$c-comp-bar-yellow', '$flat-bar'],
- ['$c-comp-bar-green-to', '$flat-green-deep'],
- ['$c-comp-bar-green', '$flat-green'],
- ];
- for (const [from, to] of MAP) {
- const re = new RegExp(from.replace('$', '\\$') + '(?![\\w-])', 'g');
- src = src.replace(re, to);
- }
- // 移除 palette 声明块(现已全部指向全局令牌)
- src = src.replace(
- /\/\/ ===== 完成率页专属色阶[^\n]*\n(?:\$c-comp-[^\n]*\n)+\n/,
- ''
- );
- fs.writeFileSync(F, src);
- console.log('done; remaining $c-comp:', (src.match(/\$c-comp-/g) || []).length);
- const lines = src.split('\n');
- let n = 0;
- for (let i = 0; i < lines.length; i++) {
- if (/#[0-9a-fA-F]{3,8}\b/.test(lines[i])) { console.log('HEX ' + (i + 1) + ': ' + lines[i].trim().slice(0, 100)); n++; }
- }
- console.log('remaining hex lines:', n);
|