用Golang搭轻量博客只需静态路由、模板渲染、文件读写三件事:以posts/目录下.md或.txt文件为“数据库”,用net/http和html/template实现列表页、详情页与编辑页,支持Markdown解析与单二进制部署。
不需要框架、不依赖数据库也能跑起来——Golang写博客的关键是:静态路由 + 模板渲染 + 文件读写。你只要会 net/http 和 html/template,就能把文章列表、详情页、编辑入口全串起来。
把每篇文章存成一个 .md 或 .txt 文件,放在 posts/ 目录下,文件名就是 slug(比如 hello-world.txt),内容开头用简单元信息:
Title: Hello World Date: 2025-05-20 --- 这是我的第一篇博客……
启动时扫描目录,解析文件头,生成文章列表;访问 /post/hello-world 就读对应文件、拆出正文和元数据,再套模板输出 HTML。
不用 RESTful 复杂规则,手写几个 http.HandleFunc 就够用:
/ → 列表页(用 template.ParseGlob 加载 index.html)/post/{slug} → 单文页(用 http.ServeMux 或简单字符串匹配)/edit → 简单表单页(带 title/content 字段,POST 提交后写入文件)模板里用 {{.Title}}、{{.Content | safeHTML}} 渲染,搭配 template.FuncMap 加个 markdown 函数(调用 blackfriday 或 goldm),就能支持 Markdown。
ark
编译成单二进制:go build -o blog .,直接 ./blog 就启动服务。想加搜索?加个内存索引(map[string][]string)扫一遍文件就行。想加密码编辑?在 /edit 处理前加个 if r.Header.Get("Authorization") != "Basic xxx" { http.Redirect(...) }。不复杂但容易忽略。