Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用 GitHub 作为博客之后,可以利用 GitHub Actions 做哪些事情? #349

Open
toFrankie opened this issue Aug 12, 2024 · 0 comments
Labels
2024 2024 年撰写 生活随笔 一些杂七杂八的文章

Comments

@toFrankie
Copy link
Owner

toFrankie commented Aug 12, 2024

配图源自 Freepik

前言

去年二月,我将简书所有文章搬到 GitHub 上,终于不用被审核了,爽!

现在,issues 页就是文章列表,README 就是主页。

📢 你也可以使用 Github Blogger 构建你的博客,只需一个仓库就可以开始了。

接下来,我会介绍一些利用自动化流程来更新 README 等操作。

  • GitHub Actions:用于设置定时任务、按条件触发以执行某些脚本。
  • Octokit:GitHub API 的官方工具包,支持多种语言。本文以 Node.js 为例。

如果第一次写的,简单了解:

不懂也问题不大,直接问 ChatGPT 就好。

本文主要提供思路,具体实现可参考我的博客,戳我

文章备份

数据在手才最安全的。

也可以自定义 GitHub Workflow,在 issue 被创建、被编辑,或定时任务,将 Issue 内容保存到仓库内。

如果你用 Github Blogger 来管理文章,可以省略第一个,因为每一次内容变更它都会提交到仓库,存放于 archives 目录。

仓库访问数据

在仓库 Insights - Traffic 处可以看到近两周的一些数据。

具有仓库推送权限的任何人都可以查看其流量,包括完整克隆(不是提取)、过去 14 天的访问者、推荐站点以及流量图中的热门内容。

由于只能看到最近 14 天的数据,如果要统计总访问量,可以创建一个定时任务的 Workflow 将数据保存到仓库内。

如果要将访问量展示在 README 里,可以将上述数据统计的数据,生成一个 SVG 图片,然后 README.md 中引用该图片文件即可。

可参考这里

我还看到另一个方案 Hints,当你在 README.md 引入他的图片之后,每访问 README 一次,也就是 Get 一次图片,那么访问量 +1,原理应该跟埋点差不多。缺点也明显,只有访问 README 才会被统计,访问 issue 等流量无法统计。

文章统计

可以做些什么呢?

比如:

  • 字数统计
  • 每年文章数
  • 近期热门文章
  • 近期创建/更新的文章

字数统计我暂时没做,思路很简单,获取所有 issues,统计 issue.body 渲染成 Markdown 格式后的字数,打算参考 ByteMd

每年文章数,遍历所有 issues,根据 issue.created_at 判断年份,可得出数据。我个人的话,更喜欢添加一个年份 Label,并利用 GitHub Issue 筛选功能,以便于快速查看每年所写文章,而且我有一些往年在简书写的文章,也是从去年从迁到 GitHub 上,所以创建时间也对不上。

近期热门文章,其实跟上一章节 Traffic 是相关的,它可以获取近两周排名前 10 的内容,但不单指 issue 内容,还有其他的。只能根据返回的 path 过滤得到对应的 issue。

近期创建/更新的文章,可以设置一个 Workflow,每当 issue 被创建或编辑时触发,然后也是通过 List repository issues 接口获取近 10 篇,加个排序 sort = updated 即可。可参考我的

配置 issue 模板

这类博客型仓库,每个 issue 就是一篇文章,通常不希望他人来创建新的 issue,我们可以为仓库配置一个 issue 模板来限制。

创建一个 .github/ISSUE_TEMPLATE/config.yml 文件,比如这样:

blank_issues_enabled: true
contact_links:
  - name: ❗️ 请勿新开 Issue
    url: https://github.com/toFrankie/blog/discussions/342
    about: 阅读文章时,如有任何想法、建议,欢迎底下评论(或在 Discussions 发起讨论),而不是新开 Issue。

在别人 New Issue 的时候,会这样:

我这样配置,他人还是可以创建 blank issue 的,但我想足够了。如果想要彻底关掉 blank_issues_enabled 设为 false

更多请看配置模板选择器

@toFrankie toFrankie added 2024 2024 年撰写 生活随笔 一些杂七杂八的文章 labels Aug 12, 2024
@toFrankie toFrankie pinned this issue Aug 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2024 2024 年撰写 生活随笔 一些杂七杂八的文章
Projects
None yet
Development

No branches or pull requests

1 participant