很多朋友问我:PaperMod 已经很优秀了,为什么要再做二次开发?这篇文章聊聊我的思考过程和技术决策。
出发点:解决实际痛点
在使用 PaperMod 搭建中文博客的过程中,我遇到了几个实际的问题:
1. 首页太"空"了
PaperMod 的首页默认只有标题、简介和一列文章列表。对于内容型博客来说,首页是流量入口,需要承载更多导航和发现功能。
2. 内容发现路径单一
在标准 PaperMod 中,读者找到感兴趣内容的路径基本只有两条:按时间线浏览文章列表,或者使用搜索。缺少按分类浏览、按标签筛选、随机推荐等发现方式。
3. 中文适配不够精细
这不是 PaperMod 的问题 —— 它面向全球用户,不可能为每种语言做深度优化。但作为中文博客,我需要页脚文案中文化、存档月份显示"1月"而非"January"、面包屑导航的中文语义等细节。
4. 移动端体验可以更好
PaperMod 在桌面端体验很好,但移动端的导航和布局还有优化空间。
技术决策:为什么是"改进"而非"重写"
面对这些问题,我有两个选择:
- 从零写一个新主题:完全自由,但需要重新实现 PaperMod 已经做得很好的部分(SEO、多语言、性能优化等),工作量大且容易遗漏
- 在 PaperMod 基础上定制:继承其核心优势,专注做增量改进
我选择了后者,原因很简单:
不要重新发明轮子,除非你确定能做出更好的轮子。
PaperMod 在性能、SEO、可访问性方面的积累是经过数千个站点验证的。在这些基础上做增量优化,比从零开始更有价值。
开发原则
在开发过程中,我遵循了几个原则:
- 不破坏原有配置:PaperMod 用户迁移到 PaperUI,只需改
theme = 'PaperUI'并添加新参数即可 - 性能不退化:新增功能不能显著增加页面体积和加载时间
- 渐进增强:新功能都是可选的,不配置就不加载相关代码
- 保持可升级性:目录结构与 PaperMod 保持一致,方便合并上游更新
PaperUI 新增了哪些功能
关于 PaperUI 具体增加了哪些功能模块、做了哪些中文化改进,请参见:
开源与合作
PaperUI 在 GitHub 上以 MIT 协议开源(与 PaperMod 保持一致),欢迎所有人使用、修改和贡献。项目地址: