| 12345678910111213141516171819202122232425262728 |
- #!/usr/bin/env node
- /** 对 growth-main/index.vue 的 style 块做等值 hex→令牌替换 */
- const fs = require('fs');
- const F = 'cfc-frontend/pages/growth-main/index.vue';
- let src = fs.readFileSync(F, 'utf8');
- const sidx = src.indexOf('<style');
- const before = src.slice(0, sidx);
- let styleBody = src.slice(sidx);
- const REPL = [
- ['#F97316', '$brand-primary'],
- ['#EA580C', '$brand-primary-dark'],
- ['#FFF7ED', '$uni-primary-pale'],
- ['#FEE2E2', '$status-danger-soft'],
- ['#DC2626', '$status-danger-deep'],
- ['#FFF', '$uni-surface'],
- ['#fff', '$uni-surface'],
- ];
- let cnt = 0;
- for (const [from, to] of REPL) {
- const esc = from.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
- const re = new RegExp(esc + '(?![0-9a-fA-F])', 'g');
- styleBody = styleBody.replace(re, () => { cnt++; return to; });
- }
- src = before + styleBody;
- fs.writeFileSync(F, src);
- console.log('replaced:', cnt);
- const rest = (src.match(/#[0-9a-fA-F]{3,8}\b/g) || []);
- console.log('remaining uniq hex:', [...new Set(rest)]);
|