这个博客是怎么搭起来的
这个博客没有用任何现成的博客框架,而是用最朴素的方式搭起来:Markdown 文件 + 一个构建脚本 + Nginx 静态托管。这篇记录一下思路,也许对想搭博客的人有点参考。
整体结构
blog/
├── build.js # 构建脚本
├── package.json
├── posts/ # Markdown 文章源
│ └── *.md
├── assets/
│ ├── style.css # 主样式
│ └── favicon.svg
└── dist/ # 构建产物(上传到服务器)
写作的时候,只需要在 posts/ 下新建一个 .md 文件,文件头用 YAML 写好标题、日期、摘要、标签:
---
title: 文章标题
date: 2026-06-26
excerpt: 一句话摘要
tags: [随笔, 技术]
---
正文从这里开始……
然后跑一句 npm run build,脚本会:
- 读取所有
.md,解析 front matter - 用 marked 把正文转成 HTML
- 套上统一的页面模板
- 生成首页(文章列表)、各文章页、关于页
为什么不用框架
Hexo、Hugo、Astro 都很好,功能也丰富。但对一个个人博客来说,我更想要的是:
- 完全可控的样式——字体、留白、配色都自己定
- 最少的依赖——只靠一个
marked库 - 目录干净——不要一堆我不用的配置文件
一个不到 200 行的脚本就能做到这些,何乐而不为。
部署
构建产物 dist/ 是纯静态文件,直接上传到服务器的 web 根目录,Nginx 托管即可。我的服务器上同时还跑着另一个 Node 后端,Nginx 这样分流:
| 路径 | 指向 |
|---|---|
/ |
静态博客文件 |
/api/ |
反向代理到 Node 后端 (127.0.0.1:3000) |
这样博客和 API 共用一个域名、一套 HTTPS 证书,互不打扰。
一点感受
工具越简单,越容易坚持。当我发现写一篇文章只需要「新建 md → build → 上传」三步时,我就知道自己会愿意写下去。
复杂的东西有它的价值,但简单的东西,才留得住。