Total Pageviews

Sunday 28 April 2024

yihong0618.github.io/gitblog开源了,用git issue写博客

 经历了几个阶段

  1. 纯粹的写issue
  2. 写完issue后添加目录到README
  3. 改成webhook用flask部署个callback 每次写完issue自动生成新的 README
  4. 最近算是学会了一些 GitHub Actions,现在只需要写 issue 打 label 就好了,其余完全不用管。核心代码在 main.py
  5. 支持了 RSS
如果你也想自己写issue博客,并自动生成README,你可以参考如下步骤
  1. fork this repo (or just copy the file whatever)
  2. change GitHub secret
  3. write issue and add label
  4. please delete all files in BACKUP folder(2020.11.26 add)
  5. 别忘了在 settings 里打开 Actions 读写的权限

关于如何生成 GitHub secret token

image

  1. 这里 点击 generate new token把需要的点上
  2. 在你的repo 中更改 secret 中把刚生成的token设置进去
    image
  3. 更改workflow中的token name 换成你自己的(不要忘了secrets 点)
    image

需要把 env 中的 name 和 email 改成自己的:

image 

from https://github.com/yihong0618/gitblog/issues/177

https://github.com/yihong0618/gitblog

--------------------------------------------------

mirror

  1. 下载 Mirror 的最新版本 地址

  2. 获取你的 hash 地址

  3. 修改 index.html

...

<script>
window.config = {
  organization: false, // 默认是 false,如果你的项目是属于 GitHub 组织 的,请设置为 true
  order: 'UPDATED_AT', // 文章排序,以 创建时间 或者 更新时间,可选值 'UPDATED_AT','CREATED_AT'
  title: 'Mirror', // 博客标题
  user: 'LoeiFy', // GitHub 用户名,必须
  repository: 'Recordum', // GitHub 项目名,指定文章内容来源 issues,必须
  authors: 'LoeiFy,author1', // 博客作者,以 ',' 分割,GitHub 用户名默认包含在内
  ignores: '17,13', // 文章忽略的 issues ID
  host: '', // 博客的主域名,不填自动获取,请注意这个值会影响 hash 的值
  hash: '', // 必须
  perpage: 5, // 分页
}
</script>

...

保存 index.html, 然后将所有文件 push 到 gh-pages 分支或者 master 分支的 docs 目录.

from https://github.com/LoeiFy/Mirror/wiki/%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B

(A blogging tool powered by GitHub API. Write your blog on GitHub issue.)

(Development

Before start

  1. install falco global, $ npm i @fratercula/falco -g

  2. fork and install modules $ npm install

  3. get your hash

  4. copy ./index.sample.html to ./index.html, and set the config values

$ npm start # start
$ npm run build # build
$ npm run lint # lint
from https://github.com/LoeiFy/Mirror/wiki/Development) 
-------------------------------------------

基于Github Issues的博客搭建

from https://github.com/superleeyom/blog/issues/38 

(demo: https://blog.leeyom.top) 

---------------------------------------------------

Gmeek

一个博客框架,超轻量级个人博客模板。完全基于Github PagesGithub Issues Github Actions。不需要本地部署,从搭建到写作,只需要18秒,2步搭建好博客,第3步就是写作。

安装

  1. 【创建仓库】点击通过模板创建仓库,建议仓库名称为XXX.github.io,其中XXX为你的github用户名。

  2. 【启用Pages】在仓库的SettingsPages->Build and deployment->Source下面选择Github Actions

  3. 【开始写作】打开一篇issue,开始写作,并且必须添加一个标签Label(至少添加一个),再保存issue后会自动创建博客内容,片刻后可通过https://XXX.github.io 访问(可进入Actions页面查看构建进度)。

  4. 【手动全局生成】这个步骤只有在修改config.json文件或者出现奇怪问题的时候,需要执行。

通过Actions->build Gmeek->Run workflow->里面的按钮全局重新生成一次

提交问题

  1. 如果有问题可参考Gmeek快速上手
  2. 在本仓库提交Issues之前,请手动全局生成一次。如果还有错误,提交Issues后,我会帮忙查看构建流程,定位问题出处。

特性

  • UI界面和Github同源,只引入了Github原生CSS:primer.style
  • 博客写作在Issues中完成后,自动触发Actions执行部署任务
  • 评论系统引入utteranc.es
  • 使用jinja2对html进行渲染,可通过模板自定义UI主题

鸣谢

from https://github.com/Meekdai/Gmeek

demo blog: https://blog.meekdai.com/ 

(Gmeek快速上手

Gmeek, 一个博客框架,超轻量级个人博客模板,完全基于Github Pages Github IssuesGithub Actions,可以称作All in Github。不需要本地部署,从搭建到写作,只需要18秒,2步搭建好博客,第3步就是写作。

一、安装

安装及其简单,但是也要认真看下面的步骤,一步一步来。

  1. 【创建仓库】点击通过模板创建仓库,建议仓库名称为XXX.github.io,其中XXX为你的github用户名。

  2. 【启用Pages】在仓库的设置SettingsPages->Build and deployment->Source下面选择Github Actions

  3. 【开始写作】打开一篇issue,开始写作,并且必须添加一个标签Label(至少添加一个),再保存issue后会自动创建博客内容,片刻后可通过https://XXX.github.io 访问(可进入Actions页面查看构建进度)。

  4. 【手动全局生成】这个步骤只有在修改config.json 文件或者出现奇怪问题的时候,需要执行。

通过Actions->build Gmeek->Run workflow->里面的按钮全局重新生成一次

二、配置文件

按照安装步骤成功搭建好后,就可以阅读下面的内容修改配置文件啦。
注意修改配置文件后一定要手动全局生成一次,不然会报错。
如果对json格式不熟悉,建议先简单学习一下。

config.json 文件就是配置文件,在创建的仓库内可以找到,对应修改为自己的即可。

{
    "title":"Meekdai",
    "subTitle":"童话是一种生活态度,仅此而已。",
    "avatarUrl":"https://github.githubassets.com/favicons/favicon.svg",
    "GMEEK_VERSION":"last"
}

以上是必须的字段,下面是可以自定义字段的描述,可以选择加入到config.json中。

"displayTitle":"Meekdai",
"homeUrl":"http://blog.meekdai.com",
"faviconUrl":"https://github.githubassets.com/favicons/favicon.svg",
"email":"meekdai@163.com",
"startSite":"02/16/2015",
"filingNum":"浙ICP备20023628号",
"onePageListNum":15,
"singlePage":["about"],
"iconList":{"music":"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13Z"},
"exlink":{"music":"https://music.meekdai.com"},
"commentLabelColor":"#006b75",
"yearColorList":["#bc4c00", "#0969da", "#1f883d", "#A333D0"],
"i18n":"CN",
"UTC":8,
"themeMode":"manual",
"dayTheme":"light",
"nightTheme":"dark_colorblind",
"urlMode":"pinyin",
"style":"",
"script":"",
"showPostSource":1,
"rssSplit":"sentence",
"bottomText":"转载请注明出处",
配置参数 说明
title 【必填】博客标题
subTitle 【必填】博客描述&自述
avatarUrl 【必填】博客头像
GMEEK_VERSION 【必填】Gmeek版本,一般写last也可以用具体tag版本
displayTitle 用于头像后面的标题展示,如果和title一致则不用添加
homeUrl 博客的主页地址,自定义域名时需要配置
faviconUrl 页面的favicon地址,如果和avatarUrl一致则不用添加
email 用于自动提交仓库时用,不添加也可以
startSite 用于页面底部显示网站运行天数
filingNum 用于页面底部显示备案信息
onePageListNum 用于首页每页展示的文章数量
singlePage 自定义独立页面,例如about或者link
iconList 用于定义singlePage按钮展示的SVG图标 (16px),aboutlink内置无需定义
exlink 用于自定义首页右上角圆形按钮到外部链接功能,按钮图标定义在iconList中
commentLabelColor 用于自定义显示评论数量标签的颜色
yearColorList 用于自定义显示不同年份标签的颜色
i18n 用于定义博客语言,目前支持EN/CN/RU
UTC 用于定义时区
themeMode 用于定义主题模式,默认为manual,也可选择fix详细说明
dayTheme 用于定义亮主题
nightTheme 用于定义暗主题
urlMode 用于定义文章链接生成模式,目前支持pinyin/issue/ru_translit
style 用于自定义文章页全局CSS
script 用于自定义文章页全局JavaScript
showPostSource 设置为1则在文章页显示issue链接按钮,设置为0则不显示
rssSplit 设置RSS输出的截断符号,默认sentence为第一句话,可配置其他特殊符号
bottomText 用于设置文章页面右下角显示的内容

三、常见问题

1. 搭建不成功

多半是没有按照安装步骤来,其实搭建就这2步,不要自己乱点乱设置,就不会有问题。

2. Actions执行失败

修改了config.json配置文件后,需要全局生成。另外label标签没有打会出现这个问题。
建议通过Actions->build Gmeek->Run workflow->里面的按钮全局重新生成一次

3. 如果要导入以前的文章,如何设置发布时间呢?

如需修改发布时间,可以在文章最后一行添加如下代码。里面的时间是采用时间戳的形式,可以用如下网站转换。

<!-- ##{"timestamp":1490764800}## -->

4. 自定义单篇文章页面的stylescript

<!-- ##{"style":"<style>#postBody{font-size:20px}</style>"}## -->
<!-- ##{"script":"<script async src='//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js'></script>"}## -->

5. 可同时一起添加多种自定义参数:

<!-- ##{"script":"<script async src='//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js'></script>","style":"<style>#postBody{font-size:20px}</style>","timestamp":1490764800}## -->

6. 添加全局文章页面的stylescript

config.json文件中添加

"style":"<style>#postBody{font-size:20px}</style>",
"script":"<script async src='//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js'></script>",

7. 置顶博客文章,只需要Pin issue即可。

8. 如果在评论里面登录后评论报错,可直接按照提示安装utteranc app即可

Error: utterances is not installed on xxx/xxx.github.io. If you own this repo, install the app. Read more about this change in the PR.

9. 如何删除一篇文章呢?

只需要Close issue或者Delete issue后,再手动全局生成一次即可.

from https://blog.meekdai.com/post/Gmeek-kuai-su-shang-shou.html ,

https://github.com/Meekdai/meekdai.github.io/issues/39 )

------------------------------------------------------------------------------

基于Github Action自动生成并更新GitHub Issue博客的ReadMe

Why

现在很多人, 包括我, 在折腾了一堆个人博客的系统之后, 放弃了花哨的页面效果, 回过头来用Github Issue写博客.

但头疼的一点就是:
如果让其他人直接点到自己仓库的issues页面来看自己的文章的话, 只会看到issue的列表, 没有突出内容, 没有分类, 没有about me, 只有一条条的issue.

如果想解决上述的问题, 就要手动在发布issue之后, 手动更新README, 并且push到仓库, 那么你需要:

  • 一台电脑
  • 安装git
  • clone仓库
  • 修改README
  • push

很麻烦, 感觉慢慢没有了更新的动力 😢

How it works

利用Github Action提供的工作流, 结合GitHub的API来实现:

  1. 通过Github API获取当前仓库的信息, 如
  • 总issue数量
  • 总label数量
  • 每个label下的issues列表
  • 最新更新(创建)的是哪些issue
  1. 将这些信息组装出自己满意的README页面
  2. 更新仓库的README.md文件
  3. 提交README.md的变更到远程仓库, 到这里, 我们的痛点就解决了一半, 剩下就是将步骤1-4在创建issue, 修改issue, 删除issue, 为issue新增label, 从删除label等等的动作之后触发了。
  4. 集成Github Action, 设置触发条件为: on: [issues, issue_comment], 完成!

于是, 你只需要写Issue就好了, 剩下的交给Github Action 🎉

You want too?

如果你也想有一个自动更新的GitHub Issue博客, 那么参考以下步骤:

  1. fork此仓库到你的账号下
  2. 修改 .github/workflow/main.yml 的第 20, 25, 26, 30, 34行内容,具体改成什么你应该懂得。
  3. 在你的仓库中建以下几个label:

这些label目前是必须存在的,所以一定要先创建。

  • :+1:置顶
  • :framed_picture:封面
  • 开源
  1. 创建一个issue试试?

至此, 如果不出意外, 你的ghiblog的自动更新就完成了.

功能说明

置顶

只需要给你的issue打上 :+1:置顶 的标签即可。

封面图片

新建一个issue, 并给这个issue打上 :framed_picture:封面 标签,(最好只给一个issue打上此标签。)
这个issue中的所有评论内容都要遵循下面的格式:

图片
---
标题

如:

![致命女人 00_28_49 20191026-155316](https://user-images.githubusercontent.com/25657798/67616241-0132a080-f809-11e9-8bd9-319b65f6e3f0.png)
---
[ Why Women Kill ]

from https://github.com/jwenjian/ghiblog/issues/1 (这个比较花哨)

No comments:

Post a Comment