会员个人中心页面初步完成
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const styleDir = path.join(__dirname, '../common/style/memberInfo');
|
||||
|
||||
/** 硬编码 px → 统一字号变量(从大到小替换,避免误匹配) */
|
||||
const fontSizePxMap = [
|
||||
['32px', 'var(--font-size-5xl)'],
|
||||
['28px', 'var(--font-size-4xl)'],
|
||||
['24px', 'var(--font-size-3xl)'],
|
||||
['22px', 'var(--font-size-2xl)'],
|
||||
['20px', 'var(--font-size-xl)'],
|
||||
['18px', 'var(--font-size-lg)'],
|
||||
['17px', 'var(--font-size-md)'],
|
||||
['16px', 'var(--font-size-md)'],
|
||||
['15px', 'var(--font-size-base)'],
|
||||
['14px', 'var(--font-size-base)'],
|
||||
['13px', 'var(--font-size-base)'],
|
||||
['12px', 'var(--font-size-sm)'],
|
||||
['11px', 'var(--font-size-xs)'],
|
||||
['10px', 'var(--font-size-xs)']
|
||||
];
|
||||
|
||||
function walk(dir) {
|
||||
for (const name of fs.readdirSync(dir)) {
|
||||
const full = path.join(dir, name);
|
||||
if (fs.statSync(full).isDirectory()) {
|
||||
walk(full);
|
||||
continue;
|
||||
}
|
||||
if (!name.endsWith('.css')) continue;
|
||||
normalize(full);
|
||||
}
|
||||
}
|
||||
|
||||
function normalize(filePath) {
|
||||
let css = fs.readFileSync(filePath, 'utf8');
|
||||
let next = css;
|
||||
|
||||
const fontFamilyMap = [
|
||||
['"Noto Sans SC-Bold"', 'var(--font-family)'],
|
||||
['"Noto Sans SC-Medium"', 'var(--font-family)'],
|
||||
['"Noto Sans SC-Regular"', 'var(--font-family)'],
|
||||
['"Noto Sans SC-SemiBold"', 'var(--font-family)'],
|
||||
['"Inter-Semi Bold"', 'var(--font-family)'],
|
||||
['"Inter-Bold"', 'var(--font-family)'],
|
||||
['"Inter-Regular"', 'var(--font-family)']
|
||||
];
|
||||
for (const [from, to] of fontFamilyMap) {
|
||||
next = next.split(`font-family: ${from}`).join(`font-family: ${to}`);
|
||||
}
|
||||
|
||||
const weightMap = [
|
||||
['font-weight: Bold', 'font-weight: 700'],
|
||||
['font-weight: Medium', 'font-weight: 500'],
|
||||
['font-weight: Regular', 'font-weight: 400'],
|
||||
['font-weight: SemiBold', 'font-weight: 600'],
|
||||
['font-weight: Semi Bold', 'font-weight: 600']
|
||||
];
|
||||
for (const [from, to] of weightMap) {
|
||||
next = next.split(from).join(to);
|
||||
}
|
||||
|
||||
next = next.replace(/white-space:\s*pre;/g, 'white-space: nowrap;');
|
||||
|
||||
for (const [px, token] of fontSizePxMap) {
|
||||
next = next.replace(new RegExp(`font-size:\\s*${px.replace('.', '\\.')};`, 'g'), `font-size: ${token};`);
|
||||
}
|
||||
|
||||
if (next !== css) {
|
||||
fs.writeFileSync(filePath, next, 'utf8');
|
||||
console.log('normalized', path.relative(styleDir, filePath));
|
||||
}
|
||||
}
|
||||
|
||||
walk(styleDir);
|
||||
console.log('done');
|
||||
Reference in New Issue
Block a user