Gobin v1.2.0 已经发布。这是一个向后兼容的功能版本,核心目标很明确:让一个静态博客项目从“能快速构建”,继续往“能长期维护、能放心发布、能顺手部署”推进。

如果你正在维护一个 Markdown 博客,尤其是从 Jekyll 迁移过来的 _posts 内容结构,Gobin 仍然保持单二进制、低依赖、快速构建的使用方式。v1.2.0 则进一步补齐了日常工作流里最常见的几个环节:创建内容、发布前检查、静态资源缓存、增量重建和容器化运行。

这次更新解决了什么

之前使用静态站点生成器时,很多工作并不发生在“完整构建”这一步,而是发生在写作和发布之间:

  • 新建文章时,需要手动记文件名格式和 Front Matter 字段。
  • 发布前,需要确认配置、模板、Markdown 和 URL 没有冲突。
  • 改一个文件后,希望本地预览尽快刷新,而不是每次都全量重建。
  • 上线后,希望 CSS、图片等静态资源能被浏览器和 CDN 稳定缓存。
  • 部署时,希望除了本机二进制,也能直接使用 Docker 镜像。

v1.2.0 基本围绕这些真实场景展开。

更快开始写:gobin new

新版本加入了内容脚手架命令,可以直接创建文章或页面:

gobin new post "我的第一篇文章"
gobin new post --date 2026-05-01 "Release notes"
gobin new page "About"

gobin new post 会按当前站点配置的 contentDir 生成带日期前缀的 Markdown 文件,并写入基础 Front Matter。对于博客作者来说,这减少了很多重复操作;对于迁移或多人维护的站点来说,也能让内容格式更一致。

发布前先检查:gobin check

v1.2.0 新增了 gobin check

gobin check
gobin check --drafts

它不会写入输出目录,而是检查配置加载、Markdown 和 Front Matter 解析、主题模板加载,以及多个页面是否会写到同一个输出路径。--drafts 可以把草稿也纳入冲突检查,适合放进 CI 或发布前脚本。

这类检查对静态博客很实用。因为真正麻烦的问题往往不是“构建失败”,而是某个 URL 在发布后才发现被覆盖、模板缺失,或者草稿内容在切换状态后产生路径冲突。

增量构建更完整

Gobin v1.2.0 引入构建 manifest:

gobin build --incremental --clean=false

构建信息会记录在 <publishDir>/.gobin-build.json 中。内容没有变化时,Gobin 可以跳过未受影响的单篇页面、列表页、taxonomy 页,以及 feed、sitemap、search、alias、robots 等站点级产物。

开发服务器也跟进了这套能力。gobin serve 的 watcher 在保存文件时会自动走增量重建路径,让本地编辑和预览更轻。

对小站点来说,这意味着反馈更快;对文章数量不断增长的博客来说,这意味着构建时间更可控。

静态资源缓存更稳:文件名级指纹

除了原有的 URL query 版本化方式,v1.2.0 新增了文件名级资源指纹:

assets:
  fingerprint:
    strategy: filename

启用后,静态资源可以输出为类似 main.1a2b3c4d.css 的文件名。内容变化时文件名变化,内容不变时路径稳定。这对 CDN、浏览器缓存和长期部署更友好,也更符合很多静态托管平台的缓存策略。

默认行为仍然保持兼容;只有显式配置 strategy: filename 时,才会改写资源文件名。

Docker 镜像已经可用

v1.2.0 同步发布了 Docker Hub 镜像:

docker pull docker.io/mengbin92/gobin:v1.2.0

镜像支持 linux/amd64linux/arm64。可以直接用它预览当前目录中的站点:

docker run --rm -p 8080:8080 \
  -e GOBIN_AUTO_INIT=true \
  -v "$PWD:/site" \
  docker.io/mengbin92/gobin:v1.2.0

这让 Gobin 不只适合本机安装,也更容易放进 CI、容器平台和标准化开发环境。

升级方式

使用 Go 安装:

go install github.com/mengbin92/gobin/cmd/gobin@v1.2.0

也可以从 GitHub Releases 下载对应平台的压缩包,并使用 SHA256SUMS 校验。

如果你已经在使用 @latest

go install github.com/mengbin92/gobin/cmd/gobin@latest

安装后可以确认版本:

gobin version

适合现在尝试 Gobin 的几个场景

如果你有下面这些需求,v1.2.0 是一个更合适的试用节点:

  • 你有一个 Jekyll 风格的 Markdown 博客,想减少 Ruby 运行时和插件依赖。
  • 你希望博客生成器是一个单文件工具,方便在本机、服务器和 CI 中使用。
  • 你关心构建速度,尤其是文章数量越来越多之后的本地预览体验。
  • 你希望保留 Markdown、Front Matter、分类、标签、RSS、sitemap 和搜索索引等常见博客能力。
  • 你希望部署时可以选择二进制、GitHub Actions 或 Docker 镜像。

Gobin 仍然在持续演进,但 v1.2.0 已经把“写作、检查、构建、预览、发布”这条主链路补得更完整了。

项目地址:https://github.com/mengbin92/gobin

Release:https://github.com/mengbin92/gobin/releases/tag/v1.2.0