你好,博客

2025-02-18·4分钟阅读·1354

今天,我的个人博客终于上线了。

这不是我第一次尝试搭建博客。从 WordPress 到 Hexo,从 Ghost 到自建系统,每次都因为各种原因半途而废。但这次不一样——这是一个完全由我和我的 AI 助手 Coder 共同构建的系统。

技术栈

这个博客基于以下技术构建:

  • Next.js 15 - React 全栈框架,支持 SSR 和静态生成
  • TypeScript - 类型安全,减少运行时错误
  • Tailwind CSS - 原子化 CSS,快速构建界面
  • Markdown - 内容写作,专注内容本身
  • PM2 - 进程管理,保持服务稳定运行

功能特性

内容管理

  • Markdown 写作 - 使用 frontmatter 管理文章元数据
  • 标签分类 - 支持自动分类和手动指定分类
  • 相关文章 - 基于标签推荐相关内容
  • 阅读统计 - 显示阅读时间和字数

阅读体验

  • 响应式设计 - 移动端优先,适配各种设备
  • 暗色模式 - 保护眼睛,自动跟随系统设置
  • 代码高亮 - GitHub Dark 主题,支持多种语言
  • 目录导航 - 侧边栏显示文章结构
  • 返回顶部 - 快速回到文章开头

搜索和导航

  • 全文搜索 - 搜索标题、摘要和标签
  • 标签云 - 按热门程度和分类展示标签
  • 面包屑导航 - 清晰展示当前位置
  • RSS 订阅 - 支持标准 RSS 订阅

内容协商

支持通过 HTTP 请求头获取不同格式的内容:

# 获取 HTML 页面(默认)
curl https://blog.example.com/posts/hello-blog

# 获取 Markdown 源文件
curl -H "Accept: text/markdown" https://blog.example.com/posts/hello-blog

设计理念

简洁至上

这个系统没有复杂的后台管理界面,没有数据库,没有用户认证。所有内容都是纯 Markdown 文件,存储在文件系统中。简单意味着:

  • 易于备份 - 复制文件夹即可
  • 易于迁移 - 没有数据库依赖
  • 易于版本控制 - Git 管理一切
  • 易于理解 - 代码即文档

移动优先

在这个手机优先的时代,博客的移动端体验至关重要。设计时采用"移动端平铺,PC端卡片"的策略:

  • 移动端:简洁的平铺列表,减少视觉干扰
  • PC端:卡片式布局,充分利用屏幕空间

渐进增强

系统采用渐进增强的设计:

  1. 基础层 - 静态 HTML,确保可访问性
  2. 增强层 - JavaScript 增强交互体验
  3. 优化层 - 按需加载,性能优化

构建过程

这个项目我和 Coder 一起开发了大约 4 个小时。整个过程是这样的:

阶段一:基础结构(1小时)

  1. 初始化 Next.js 项目
  2. 配置 TypeScript 和 Tailwind CSS
  3. 设计文章数据结构
  4. 实现 Markdown 解析

阶段二:核心功能(1小时)

  1. 文章列表页
  2. 文章详情页
  3. 标签页
  4. 搜索功能

阶段三:增强功能(1小时)

  1. RSS 订阅
  2. 代码高亮
  3. 暗色模式
  4. 阅读时间和字数统计

阶段四:细节优化(1小时)

  1. 响应式布局调整
  2. 标签分类系统
  3. 相关文章推荐
  4. 目录导航

技术亮点

中文友好

系统对中文内容做了特别优化:

  • 支持 URL 编码的中文文件名
  • 中文标签的 URL 编码处理
  • 中文内容的阅读时间计算

标签分类

标签采用混合分类方案:

  1. 手动指定 - 在文章 frontmatter 中指定标签分类
  2. 自动匹配 - 基于关键词自动分类
  3. 兜底方案 - 未分类的归入"其他"
---
tags:
  - React
  - 性能优化
tagCategories:
  React: frontend
  性能优化: frontend
---

模板系统

支持多种展示模板:

  • default - 经典风格
  • minimal - 极简风格
  • magazine - 杂志风格(当前使用)

通过配置文件一键切换:

// src/blog.config.ts
export const siteConfig = {
  template: "magazine",
  // ...
};

未来计划

虽然系统已经可以正常运行,但还有很多可以改进的地方:

短期目标

  • 修复搜索功能的中文支持问题
  • 添加文章归档页面(按年月)
  • 优化图片加载(懒加载、响应式图片)
  • 添加访问统计(不依赖第三方服务)

中期目标

  • 评论系统(可能使用 GitHub Issues)
  • 文章系列功能(教程、系列文章)
  • 全文搜索(服务端搜索)
  • 文章推荐算法优化

长期目标

  • 多语言支持
  • 多作者支持
  • 后台管理界面
  • 插件系统

写在最后

这个博客不仅仅是一个技术项目,更是我和 AI 协作的实验。在整个开发过程中,Coder 承担了:

  • 架构设计 - 提供技术选型建议
  • 代码实现 - 编写大部分代码
  • 问题排查 - 快速定位和修复 bug
  • 文档编写 - 自动生成技术文档

这种协作模式让开发效率提升了至少 3 倍。当然,AI 还不能完全替代人类的创造力和判断力,但它确实是一个强大的助手。

如果你也想搭建自己的博客,欢迎参考这个项目。代码已经开源(如果有一天我开源的话),或者你可以直接联系我获取。


这是第一篇文章,以后会在这里分享技术笔记、项目经验、读书心得等内容。希望这个博客能成为我的知识库,也希望能帮到有需要的人。

欢迎来到我的博客!

分享:

相关文章