最后更新 · 2026 年 5 月

关于这个网站

Nuxt3 + TailwindCSS + Vercel + Redis —— 一个后端工程师的全栈实践。

缘起:为什么不直接用现成的?

市面上不缺好用的博客框架,Hexo 快,Hugo 更快,WordPress 功能丰富。 但我最终还是选择从零开始搭一套 —— 并不是因为现成的不好,而是想在这个过程里把 Nuxt 3 的全栈能力、Tailwind 的样式系统、Redis 持久化存储、Git 驱动的部署串起来完整跑一遍。

这篇博客就是这套流程的产物,也是我持续迭代的一个技术练兵场。 从最初的 Nuxt 2 到全面迁移至 Nuxt 3,每一次重构都是对现代前端工程化的深入理解。

技术选型

Nuxt 3 · 全栈框架

基于 Vue 3 的现代化全栈框架,采用 Composition API 和 <script setup> 语法。 服务端渲染(SSR)与静态生成(SSG)灵活切换,内置文件路由系统, 使用 Pinia 替代 Vuex 进行状态管理。Nuxt 3 对 Node.js 20+ 的完美支持, 让部署在 Vercel 上更加顺畅。

TailwindCSS · 样式系统

不用再为类名纠结,直接在模板上组合实用类。暗色模式通过 Tailwind 的 dark: 变体实现,配合系统主题跟随,日间和夜间的阅读体验都还说得过去。

Marked + Highlight.js · 内容渲染

使用 Marked 解析 Markdown 内容,配合 Highlight.js 实现代码高亮。 自定义代码块样式,支持语言标签、行号显示、一键复制等功能, 打造接近掘金风格的阅读体验。

GitHub + Vercel · 自动部署

代码托管在 GitHub 组织仓库 easyblog-org/easyblog-web,每次 push 到 main 分支, Webhook 触发 Vercel 重新构建,大约 20 秒后新版就能上线。 整个过程不用手动传文件,也不用操心服务器运维。

暗色模式 · 一点点实现细节

Tailwind 内置的 dark 变体已经解决了大半问题。剩下的主要是全局背景切换,以及需要自定义几处深色主题下的容器阴影。 通过在 HTML 根元素上动态添加/移除 dark 类名来实现主题切换。

<!-- 日间模式 -->
<div class="bg-white"></div>

<!-- 手动触发暗色模式 -->
<div class="dark:bg-neutral-900"></div>

<!-- 跟随系统主题 -->
<script>
if (window.matchMedia('(prefers-color-scheme:dark)').matches) {
  document.documentElement.classList.add('dark')
}
</script>

完整代码可以在 GitHub 仓库看到,这里只贴最核心的一小段示意。

关于我

Frank

后端工程师 & AI 工程化探索者。日常写 Java 和 Python,对干净、克制的设计有执念。 相信好的工具能让开发者更专注于创造本身。

完整履历和个人介绍 →
GitHub 仓库· RSS 订阅 即将上线,敬请期待
Vercel 构建状态:正常

©2026 EasyBlog 版权所有. Powered by Nuxt.