这个站点的全部技术栈是:Markdown 写内容,一个构建脚本生成 HTML,静态托管出去。没有数据库,没有后台,没有服务器要维护。
目录结构
blog/
├─ content/
│ ├─ posts/ 文章,一篇一个 .md
│ └─ about.md 关于页
├─ src/
│ ├─ layout.js 页面外框(页头页脚、主题切换)
│ └─ style.css 全站样式
├─ site.config.json 站点名、简介、作者
├─ build.js 构建脚本
└─ dist/ 构建产物,发布的就是这个目录
写一篇新文章
在 content/posts/ 下新建一个 .md 文件,开头写上几行元信息:
---
title: 文章标题
date: 2026-11-02
tags: [标签一, 标签二]
summary: 显示在列表里的摘要,一句话就够。
---
正文照常用 Markdown 写。文件名会成为网址,比如 my-post.md 就是 /posts/my-post.html。
然后跑一次构建:
npm run build
三种发布方式
| 方式 | 成本 | 需要域名 | 大陆访问 |
|---|---|---|---|
| 免费平台托管(Cloudflare Pages / Vercel) | 0 元 | 不需要,用平台子域 | 一般 |
| 免费子域名 + 境外服务器 | 域名 0 元,服务器约 100 元/年 | 不需要 | 一般 |
| 国内云服务器 | 服务器约 40-100 元/年 | 必须买,且要备案 | 最快 |
现在的版本走的是第一条路:把 dist 目录扔上去就有网址,将来买了域名也可以在平台后台直接绑定,内容一个字都不用改。
为什么不用 WordPress
不是不好,是这套更省心。静态站的页面是提前生成好的 HTML,不需要 PHP 和数据库常驻内存,一台 1 核 1G 的机器能扛住很大的访问量,也更不容易被扫出漏洞。
代价是没有网页后台。对我来说这不是问题——写字本来就在编辑器里。
主题
右上角的「暗 / 亮」按钮可以切换配色,选择会存在浏览器本地。没点过的时候跟随系统设置。