| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/usr/bin/env node
- /**
- * D14: child-detail.vue 孩子详情页清理 (debt 73)
- * flat 设计主题专属色收编为页面级局部变量 $c-cd-*(无全局等值令牌)
- */
- const fs = require('fs');
- const F = 'pages/parent/child-detail.vue';
- let src = fs.readFileSync(F, 'utf8');
- const styleIdx = src.indexOf('<style');
- const before = src.slice(0, styleIdx);
- let styleBody = src.slice(styleIdx);
- const PAL = [
- ['#FFF9F0', '$c-cd-bg'], // 页面米白底 x2
- ['#B2BEC3', '$c-cd-muted'], // 次要灰文字 x3
- ['#FF7A2E', '$c-cd-orange'], // 橙渐变档
- ['#4ECDC4', '$c-cd-teal'], // 青绿主色 x3
- ['#44B09E', '$c-cd-teal-deep'], // 青绿深档 x3
- ['#A8E063', '$c-cd-green'], // 绿浅档
- ['#56AB2F', '$c-cd-green-deep'], // 绿深档
- ['#F093FB', '$c-cd-pink'], // 粉紫
- ['#F5576C', '$c-cd-red'], // 红粉
- ['#2D3436', '$c-cd-ink'], // 主文字深灰 x5
- ['#636E72', '$c-cd-muted2'], // 辅助文字中灰 x3
- ['#FFF5EB', '$c-cd-card'], // 暖白卡片底 x2
- ['#F5F0EB', '$c-cd-line'], // 暖分隔线 x2
- ['#FFF0F0', '$c-cd-danger-bg'], // 警示浅红底
- ];
- for (const [f, t] of PAL) {
- const esc = f.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
- styleBody = styleBody.replace(new RegExp(esc + '(?![0-9a-fA-F])', 'gi'), t);
- }
- const palette = [
- '// ===== 孩子详情页专属色阶(flat 图表青绿 + 米白卡片;单页专用,约定见 uni.scss §14)=====',
- '$c-cd-bg: #FFF9F0; // 页面米白底',
- '$c-cd-card: #FFF5EB; // 暖白卡片底',
- '$c-cd-line: #F5F0EB; // 暖分隔线',
- '$c-cd-ink: #2D3436; // 主文字(深灰)',
- '$c-cd-muted: #B2BEC3; // 次要文字(灰)',
- '$c-cd-muted2: #636E72; // 辅助文字(中灰)',
- '$c-cd-orange: #FF7A2E; // 橙渐变终档',
- '$c-cd-teal: #4ECDC4; // 青绿主色',
- '$c-cd-teal-deep: #44B09E; // 青绿深档',
- '$c-cd-green: #A8E063; // 绿浅档',
- '$c-cd-green-deep: #56AB2F; // 绿深档',
- '$c-cd-pink: #F093FB; // 粉紫渐变起',
- '$c-cd-red: #F5576C; // 红粉渐变终',
- '$c-cd-danger-bg: #FFF0F0; // 警示浅红底',
- ''
- ].join('\n');
- styleBody = styleBody.replace(/(<style[^>]*>\s*\n)/, '$1' + palette + '\n');
- fs.writeFileSync(F, before + styleBody);
- console.log('D14 done');
|