站点:纯静态 HTML + CSS + 原生 JS,零框架零构建
页面:首页 / 合作品牌 / 荣誉资质 / 客户案例 / 关于我们
内容:
- site/ 站点本体(含已压缩 webp 图片,约 4.8 MB)
- deploy/ Docker Compose / Caddy / Apache 部署配置
- _tools/ 开发自检脚本与部署脚本
- Dockerfile 自建 nginx 镜像方案
- README.md 项目文档
设计:品牌黄 #ffc107 + 白,深蓝仅用于页脚;菜单长期置顶;
交互动效只加在关键词与区块级元素上。
素材说明:原始素材(背景图/老网站/方案/荣誉资质/合作品牌,约 290 MB)
未纳入版本控制,站点使用的是 site/assets 内已处理压缩的图片。
40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
// 清理已不再使用的 CSS 规则(删除整块 @media 请谨慎,这里只删顶层规则)
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const CSS = path.join(__dirname, '..', 'site', 'assets', 'css', 'main.css');
|
|
let css = fs.readFileSync(CSS, 'utf8');
|
|
const before = css.length;
|
|
|
|
// 这些选择器对应的结构已在改版中移除,且确认页面里没有再引用
|
|
const DEAD = [
|
|
'deco-glow', 'deco-dots', 'floatcard', 'floatcard__num', 'floatcard__txt',
|
|
'sec-head', 'sec-head--center', 'section--dark', 'btn--ghost-light',
|
|
'figure--float', 'hl', 'lead', 'text-center', 'sr-only'
|
|
];
|
|
|
|
function removeRule(src, selectorFragment) {
|
|
// 匹配「选择器块 + 紧随其后的 { ... }」(含 @media 内的一层)
|
|
const re = new RegExp(
|
|
'(^|\\n)([^\\n{}]*\\.' + selectorFragment.replace(/[-]/g, '\\-') +
|
|
'(?![\\w-])[^\\n{}]*)\\{[^{}]*\\}', 'g');
|
|
let count = 0;
|
|
const out = src.replace(re, (m, lead, sel) => {
|
|
count++;
|
|
return lead; // 保留换行,删掉整条规则
|
|
});
|
|
return [out, count];
|
|
}
|
|
|
|
let total = 0;
|
|
for (const sel of DEAD) {
|
|
const [out, n] = removeRule(css, sel);
|
|
css = out;
|
|
total += n;
|
|
if (n) console.log(' 删除 .' + sel + ' 相关规则 ' + n + ' 条');
|
|
}
|
|
|
|
css = css.replace(/\n{3,}/g, '\n\n');
|
|
fs.writeFileSync(CSS, css, 'utf8');
|
|
console.log('\nCSS 体积:' + before + ' → ' + css.length + ' 字节(删除 ' + total + ' 条规则)');
|