博客框架迁移:从 Jekyll 到 Hugo

前言 之前的博客基于 Jekyll + Hux Blog 主题,用了快一年,总觉得不太顺手。Jekyll 是 Ruby 生态,本地构建慢,主题样式偏重(大图背景、多栏布局),对我这种只想简洁写文章的人来说有点臃肿。 于是决定迁移。目标是: 🚀 更快的构建速度 🎨 极简的页面风格 —— 无背景图、干净利落 🔧 少折腾 —— 配置简单,开箱即用 📝 保留所有文章和资源 最终选择了 Hugo + PaperMod 主题。 为什么选 Hugo? 特性 Jekyll Hugo 语言 Ruby Go 构建速度 ~5-10 秒 ~250ms 安装 需 Ruby + Gem 单二进制 配置 _config.yml hugo.toml 主题生态 丰富 丰富 Hugo 最大的优势就是快——单二进制文件,没有任何依赖,构建 55 篇文章只要 250ms。PaperMod 主题默认就是白色极简风格,没有大图背景,几乎没有需要改动的地方。 迁移做了什么 1. 文章转换(55 篇) 原来的 Jekyll 文章格式: 1 2 3 4 5 6 7 8 9 --- layout: post title: "Introduction to Linear Programing" date: 2025-09-14 23:54:39 +0800 author: "farmer3-c" header-img: "img/post-bg-2015.jpg" mathjax: true tags: [] --- 转换为 Hugo 格式: ...

June 28, 2026 · 2 min · farmer3-c

博客优化问题与解决方案总结

博客优化问题与解决方案总结 最近对博客进行了多次优化,遇到了各种问题,现在总结一下遇到的问题及解决方案,供大家参考。 1. Service Worker 自动刷新问题 问题描述 博客添加了 Service Worker 后,每次检测到更新都会显示 “Content updated. REFRESH” 按钮,需要手动点击刷新。 解决方案 修改 js/sw-registration.js,移除手动刷新提示,直接使用 location.reload()。 1 2 3 4 5 if(data.command == "UPDATE_FOUND"){ console.log("UPDATE_FOUND_BY_SW", data); // 自动刷新页面,无需手动点击 location.reload(); } 后续问题 启用自动刷新后,网站出现了无限刷新循环的问题,用户体验极差。 最终解决方案 移除 Service Worker 的自动刷新机制,改用 Stale-While-Revalidate 缓存策略: 优先显示缓存内容 后台更新缓存 用户下次访问时自然看到新内容 2. 导航栏显示文章标题问题 问题描述 导航栏突然显示了文章标题 “编译实践Lv1. main 函数”,而不是正常的页面链接。 根本原因 之前误将一篇博客文章放到了 css/ 文件夹,Jekyll 将其当作页面处理,导致导航栏循环显示所有有 title 的页面。 解决方案 彻底解决方案: 硬编码导航栏,只显示固定页面。 修改 _includes/nav.html: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <ul class="nav navbar-nav navbar-right"> <li> <a href="{{ site.baseurl }}/">Home</a> </li> <li> <a href="{{ site.baseurl }}/about/">About</a> </li> <li> <a href="{{ site.baseurl }}/archive/">Archive</a> </li> <li class="search-icon"> <a href="javascript:void(0)"> <i class="fa fa-search"></i> </a> </li> </ul> 同时从 git 历史中彻底移除误放的文章。 ...

May 16, 2026 · 3 min · farmer3-c