← 返回文章列表

这个站点是怎么搭起来的

  • 技术
  • 建站

搭这个站点的时候,我给自己定了一条规矩:能少一个依赖就少一个依赖。

选型:反着来

主流做法是 Next.js / Astro / Hugo 之类,功能齐全。但一个只写文字的个人博客,其实不需要:

需求 常见方案 这里的做法
写文章 CMS / Markdown + SSG Markdown 文件
生成 HTML 框架构建 一个 Python 脚本
样式 Tailwind / CSS-in-JS 一个手写 CSS 文件
部署 CI/CD 流水线 一条 rsync
依赖数量 几百个包 1 个(Markdown 解析库)

整个站的形状

src/posts/*.md      写文章的地方
src/templates/*.html 页面模板
src/static/         样式、脚本、图标
build.py            Markdown -> HTML,顺便生成首页、RSS、sitemap
public/             构建产物

写作流程就是:新增一个 .md 文件,跑一次构建。

./deploy.sh
# ✓ 内容自检通过
# → 已备份线上当前版本
# → 已部署 (git rev e639989)
# ✓ 落盘校验通过
# ✓ 线上响应 HTTP 200

刻意保留的「笨」

  • 没有数据库 —— 内容就是文件,丢不了,也不怕备份
  • 没有构建缓存 —— 全站构建 0.2 秒,缓存是负优化
  • 没有评论系统 —— 想说话可以写信,或者当面说
  • 没有统计脚本 —— 有多少人看,不那么重要

复杂度是一种负债,只是它的利息在很后面才显现。

那什么才是重要的

  1. 打开要快 —— 全站只有一个 CSS 文件,无 JS 也能读
  2. 能找回旧文 —— RSS + sitemap 齐全
  3. 改起来不疼 —— 十分钟能换掉整个配色

如果哪天这个站变得需要「维护」了,那大概说明我做错了什么。