一个通过 Github Discussion 驱动的 Blog 启动器

2022-07-25 08:02:38 +08:00
 YeungKC

通过 Github 自制 Blog 是很久之前的想法,之前也曾试过使用 Hexo, Gatsby 和 Docusaurus ,但是因为各种原因失败了,然后,Hakuba 它来了。

初衷

之前的 Blog 是基于 Hexo ,其实仅仅也是选用了社区的主题,部署一下而已,但是也有很多东西让我不满,比如:

预期

对于 Blog 的预期,在我看来有以下几个:

技术栈

由于篇幅缘故,这里就不赘述太多开发过程记录,有兴趣可以点击这里查看

实现原理

预处理数据

构建过程大概是,通过 script 预先分析目前的 Discussion ,从中分离出 config ,page ,和 post 。

对于 post 和 page ,通过 Discussion 增加 front meta ,然后输出对应的 md 文件。

config 数据写入到 .env.local 中,因为优先级问题这样只会在构建时就使用了,如果运行 script ,那么只有 .env 生效。

具体实现在这里

webhook

由于 Vercel 等服务提供了 deploy 服务,可以简单的创建 Deploy Hook ,只需要将 Deploy Hook 的 URL 添加到 Repo setting 的 webhook 中即可。

更多信息

开发过程记录: https://yeungkc.com/post/2/

更详细的配置可以参考: https://github.com/YeungKC/Hakuba/

Demo 体验地址:https://hakuba.yeungkc.com/

2128 次点击
所在节点    分享创造
8 条回复
Chingim
2022-07-25 08:20:18 +08:00
我不用 hexo ,但是我觉得你说它“ 繁琐的写作流程” ,这就很不公平了。

它一样可以:
- 设置 commit 的 webhook 或者直接用 vercel 部署
- 像你在 discuss 做的那样,它也可以直接在 github 的界面写 md ,并有预览功能

另外你提到的质量参差不齐,不也是一样可以自己写主题解决吗,在这个过程中,它是不是一样可以用你喜欢的技术栈呢?
- tailwind
- giscus
YeungKC
2022-07-25 08:31:54 +08:00
@Chingim

我想我说的有点模糊了,应该加上个大部分的定语。

你说的其实是对的,核心原因是因为我不想去了解 Hexo ,这一点我和朋友讨论过,有点累。
jason94
2022-07-25 10:12:22 +08:00
我是自己写了个 Action

https://github.com/zenghongtu/github-issue-to-hexo

自动把 issue 生成 Hexo post ,然后通过 Vercel 部署。

有个细节跟你一样,就把 issue number 加到 url 中,然后 issue 的 comment 就是对应 post 的 comment 😀
huhexian
2022-07-25 10:40:25 +08:00
https://t.me/FindBlog/106 帮你宣传了一下~
YeungKC
2022-07-25 11:42:48 +08:00
@huhexian 感谢

@jason94

嗯嗯,这个其实都是预处理的过程,我当时没有选择 action 的原因是因为 action 相对而言编写比较麻烦。

没有选择 issue 还有一个很重要的就是分类,discussion 可以设置其他人无法发表,如果希望的话也可以做到文章分类,整体就清爽不少( btw ,开发过程中我发现分类实在太麻烦了,文章就没用上

然后 page 和 config 方面也是通过 discussion 去驱动的,这一点 issue 做出来可能就一堆 label ,实际上没有什么意义对于一个 blog 。
YeungKC
2022-07-25 11:46:14 +08:00
@jason94

然后我希望做到的是程序和数据完全分离,假设我只是开一个空 repo 在 discussion 上写,编写一个 action clone 然后执行 build 就可以了生成 blog 了,同理编写一个 script 也可以直接给到 vercel 部署,使用者甚至不需要关心代码更新进度如何。
M9l7chlLGv
2022-07-25 12:42:42 +08:00
GitHub Discussion 确实很搭 Giscus.
已 star ,路线图的一些东西或许可以看看我同样基于 SvelteKit 的博客启动器 Urara: https://github.com/importantimport/urara
YeungKC
2022-07-25 14:27:14 +08:00
@M9l7chlLGv 感恩,Gisucs 主题太难搞,我还没怎么看,看到你的也是一个非常好的思路~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/868442

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX