我做了一个实验,让我的微博客可以从 GitHub Issue 自动生成。

在这篇文章中,我会展示我是如何重新设计我的博客工作流的。

系统图

系统图

所有流水线都运行在 GitHub 平台上。

动机

通常,我们遇到问题就去 Google 一番,然后从 Stack Overflow 粘贴代码。仅此而已,没有更多。 但是,我们在这个过程中总该学到了些什么。而这正是我们应该记录下来的东西。

我热爱写博客,但在电脑上写总觉得有点繁琐。 我需要建立一种在手机上就能完成发布的方式。

使用 Medium 之类的第三方服务不在我的考虑范围内,因为我想自己管理内容。

实现

我偶然发现了基于 GitHub Actions 的博客 r7kamura/diary。 看到他的代码后,我受到启发,想写一套自己的系统。

首先,我以 Jekyll 博客为基础,它是一个用 Ruby 编写的静态网站生成器。 原因是我以前用过它,比较熟悉。

我注意到 r7kamura 创建了一个专用的 GitHub Action。 编写自定义 GitHub Action 对我来说是个技术挑战,但我沿用了他的思路。

https://github.com/junkpiano/til-cli

它会遍历已关闭且带有标签的 GitHub Issue。 我把标签当作分类来处理。目前每个 Issue 应该只有一个标签(代码)。

他似乎除了正文之外还会解析 Issue 的评论,但我只使用正文。

最终,每当 GitHub Issue 发生任何变化,til-cli 就会生成全部文章以及归档页面。 亲手编写 GitHub Action,让我理解了 GitHub Action 的深度。

为什么选 GitHub Issue?

因为它就像管理博客 CMS 一样简单。

相关文章