logo NodeSeekbeta

开源一个我自用的静态博客系统:纯 Markdown 写作 + GitHub Actions 自动构建(带 SEO 独立文章页)

最近把自己博客系统整理了一下,顺手开源出来:一个极简静态博客,日常只需要写/改 posts/ 里的 Markdown,剩下的全部交给 GitHub Actions(actions bot)自动构建

地址:👉NIE-Higan-Blog


这玩意能干啥?

  • 只写 Markdown:文章放 posts/,支持 YAML Front Matter
  • 自动生成首页索引:生成 posts.json(SPA 首页读这个渲染列表)
  • 自动生成站点地图:生成 sitemap.xml
  • 每篇文章自动生成独立静态页:输出到 /p/<slug>/index.html
    这样搜索引擎/分享链接都更友好(SEO/预览/直链)
  • 评论可选:可接 Waline(不强依赖)

图片展示

image
image

构建方式(只有一种)

这个项目只支持一种构建方式

你提交文章 → GitHub Actions 自动运行 build → 自动生成产物并由 actions bot 提交回仓库

你不需要在本地装任何东西,也不需要手动执行脚本。


写作方式(两种都行)

方式 A:先在本地写好 Markdown,再复制进仓库

  • 本地写 .md
  • 上传/复制到仓库 posts/
  • 提交后自动构建

方式 B:直接在 GitHub 网页里写

  • 打开 posts/
  • 新建/编辑文件
  • 提交后自动构建

文章格式

文件命名建议

普通文章建议用:

  • YYYY-MM-DD-文章标题.md

Front Matter(支持 top 排名)

文章顶部可以写:

---
title: 文章标题
date: 2026-02-06
category: 分类
tags: [标签1, 标签2]
top: 10
---

其中:

  • top文章排名:数字越大越靠前
    例如 top: 100 会排在 top: 10 前面

「说说」的特殊规则

我把“说说”当成一种特殊分类,规则固定:

文件名必须是

  • YYYY-MM-DD-说说.md

文件最顶部固定写

---
title: 说说
date: YYYY-MM-DD
category: 说说
---

然后下面直接写正文内容即可,例如:

---
title: 说说
date: 2026-02-06
category: 说说
---

今天又在折腾 VPS,把 DNS 搞炸了……

欢迎围观/提建议

仓库:👉NIE-Higan-Blog

如果你也喜欢这种“只写 Markdown、其余全自动”的方式,欢迎点个 Star 或提 PR。

123
  • 好东西啊

  • xhj003

  • 我震惊了,这又是什么思路 xhj024
    集成了生成产物提交到仓库里面容易出大小写bug,远程actions提交一次build一次的缺点;不仅暴露源md文件,还污染git提交记录和仓库……?
    好小众的思路,我急需楼主解释这么玩的好处到底是什么,有什么理由不直接用actions进行build并发布生成产物文件夹到pages(或交给vercel进行build),这样也只写md其余全自动啊?

    e.g.修改一下url快速扒出楼主博客源文件:https://www.聶.net/posts/2026-02-03-Dedirock 年付6.75刀 1核心2G内存30G NVMe 测评留档.md

  • @samhou #3 发布于2026/2/6 23:08:25
    我震惊了,这又是什么思路 xhj024
    集成了生成产物提交到仓库里面容易出大小写bug,远程actions提交一次build一次的缺点;不仅暴露源md文件,还污染git提交记录和仓库……?
    好小众的思路,我急需楼主解释这么玩的好处到底是什么,有什么理由不直接用actions进行build并发布生成产物文件夹到pages(或交给vercel进行build),这样也只写md其余全自动啊?

    e.g.修改一下url快速扒出楼主博客源文件:https://www.聶.net/posts/2026-02-03-Dedirock 年付6.75刀 1核心2G内存30G NVMe 测评留档.md

    写完 md 一提交,Actions 给我把首页数据 文章之类的静态页都生成好,部署那边只管把文件发出去(不需要再跑构建)

    至于你说的:

    • md 能被扒:我本来就没打算藏(公开文章=公开源稿)
    • commit 多:是缺点,但都是 bot 的固定提交,我觉得没啥关系;真介意可以改成产物丢到单独分支/单独仓库
  • @大负豪 #4
    我不明白。可以actions生成,然后把生成的静态产物(指定一个pubic构建子文件夹)直接公开到pages啊?没必要储存这些产物
    你这个站甚至是vercel上面的。vercel都可以直接build然后把产物公开……为什么还要多一堆commit呢?为什么还要单独仓库?这是我想不通的
    image

    image

  • 我记得quartz博客就是这样的

  • 好东西,我也需要这种

  • @samhou #5
    commit这个确实没办法,没在意这个
    构建的话,如果在仓库里构建完成,
    其他任意pages可以直接托管 最多加一个xxx.json 设置缓存
    不必额外设置自动构建 因为每个平台都不一样

  • @大负豪 #8
    你的项目actions只是装了py然后跑一个python构建,每个平台配一下其实也不是很烦
    如果你说要省下多平台配置时间,那确实是,我也不得不认可 ac01
    但是为了省事暴露文件,增加垃圾commit,数字强迫症已经晕过去了 xhj017

  • @samhou #9
    反正文章都公开了,暴露md文件也没啥,
    之前我那个写文章的仓库都是直接公开的 xhj024

123

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有61579位seeker

🎉欢迎新用户🎉