我的博客旧主题是基于初学前端时写的 Fuji 主题构建的大改版,而在历经多次小修小补之后终于进入了维护不动的的状态。无论是 Hugo 模板本身,还是相配的 JS 和 CSS 都进入了完全的混乱状态。趁着近期有一点时间,是时候来一次重构了。整体设计整体颜色设计基本不变,为了优化整体的样式统一性,主要改动点如下:移除副色调 hover 样式,使用下划线高亮 hover 可点击元素调整全局背景色调整卡片背景色为半透明,配合 CSS backdrop-filter 属性实现毛玻璃效果为减小 CSS 文件大小,移除使用的 Bulma 和 Primer CSS 框架,全部样式均为自定义。模块和设计相关列表文章列表添加字数和阅读时间显示,移动端隐藏笔记列表样式完全重写友链列表样式完全重写侧边栏移除侧边栏的 Firefox 和 Mozilla 广告移除由 Vue.js 构建的自定义搜索,转为 Google 搜索直接跳转粘性元素调整Navbar 和 Footer粘性 navbar 配合 CSS backdrop-filter 属性实现毛玻璃效果移除 footer 背景色移除 footer 站点状态链接图片全图片迁移至 WebP全图片采用浏览器原生 lazyload评论区利用 Disqus 的 favicon 检查连接状态以选择性加载评论区使用 Intersection Observer 懒加载防止页面性能被连接检查请求拖慢代码结构相关JS开发模式由 Hugo 内置 ESBuild 构建,生产模式由 rollup 配合 Babel 构建拆分为组件和插件对功能进行分类剪贴板拦截逻辑调整,仅非代码块且大于 100 字时插入版权信息全模块改写为异步函数,主线程中根据当前页面的 section 并发运行CSS自定义 Prism 主题CSS 类名格式调整移除所有 CSS 库完全重写,包括 Bulma 和其他 normalize 等Go HTML基础模板调整,提供 head 和 main 两个模块,便于选择性插入对应的 CSS 和 JS模板传参全面改为使用 scratch添加通用 pagination 模板Lazyload 图片通过内置函数获取长宽比,并用内联样式进行懒加载占位渲染规范相关外置 JS 脚本全部使用自定义动态 loader 加载各模块需要的 DOM 相关属性名定义在各模块内部