嘿,欢迎来到我的博客开发历程分享!这篇文章将带你了解我如何从零开始,使用Docusaurus构建这个你现在正在浏览的个人博客网站。从最初的技术选型纠结,到一步步实现各种功能,再到最终部署上线,我会分享整个过程中的思考、挑战和解决方案。
为什么我最终选择了Docusaurus
说实话,选择一个合适的博客框架真的让我头疼了好一阵子。市面上有太多选择,每个都有各自的优缺点。在做决定之前,我花了不少时间研究和对比了几个主流的静态站点生成器:
我考虑过的其他选择
- Next.js:
- ✅ 极其强大的React框架,几乎能实现任何功能
- ✅ 支持SSR/SSG/ISR等多种渲染方式
- ❌ 需要从头开始搭建博客功能,工作量大
- ❌ 配置相对复杂,学习曲线陡峭
- ❌ 对于"只是想要一个博客"来说有点大材小用
- Hugo:
- ✅ 构建速度惊人(Go语言编写)
- ✅ 部署简单,不依赖Node.js环境
- ❌ 使用Go模板语言,不是我熟悉的技术栈
- ❌ 自定义组件相对困难
- ❌ 主题定制需要深入了解Hugo的模板系统
- Hexo:
- ✅ 专为博客设计,中文社区活跃
- ✅ 主题和插件生态丰富
- ❌ 很多主题质量参差不齐,需要大量修改
- ❌ EJS模板不如React组件灵活
- ❌ 文档质量不够高,有些功能需要自己摸索
- VuePress/VitePress:
- ✅ 基于Vue生态,界面美观
- ✅ 文档支持良好
- ❌ 主要针对文档网站,博客功能是次要的
- ❌ 我更熟悉React而非Vue
为什么Docusaurus最终胜出
经过一番对比和实验,我最终选择了Docusaurus,主要基于以下几点考虑:
- React驱动的开发体验:作 为一名React开发者,我可以直接利用已有的技能和组件库。不需要学习新的模板语言,直接用JSX就能自定义任何部分。
// 举个例子,我可以轻松创建自定义React组件
function Hero() {
return (
<div className={styles.hero}>
<div className={styles.intro}>
<h1>王起哲的博客</h1>
<p>在这里分享我的技术探索之旅</p>
</div>
</div>
);
}