Notion文章免费&自动发布到GitHub Pages - 知乎

摘要

本方案需要依赖:

1. Notion - One workspace. Every team

2. github.com/dragonman225

3. docs.github.com/cn/acti

最终可以实现:

1. 有一个自己的免费网页 Github Pages

2. 在Notion中写完任何文章后的一天内免费&自动发布到 Github Pages 中,

3. 成品请参考我的网页:

FizzerYu​fizzeryu.github.io/

步骤

1. 首先你要有个Github账号和Notion账号,如果你是学生的话可以免费领取 GitHub Student Developer PackNotion for Education

2. 创建一个新仓库,需要给这个仓库一个比较特殊的名字,比如说 userName.github.io,注意这里的 userName 可以是任意你喜欢的名字,但是强烈推荐使用自己的github用户名

3. 把这个 Notion表格模板 复制到自己的Notion账号中【右上角的 Duplicate 按钮】,把这个表格设置为公开【 点击右上角的 Share 按钮→ Share to web 打开 】,然后点击 Copy 按钮复制网址

3.1 比如说我复制出来的网址是 https://www.notion.so/2c4dc4affe68463da4f61f8fa93406e0,打开这个网址检查一下是不是对应的表格模板

4. fork仓库 github.com/dragonman225 ,修改 config.json 文件中的 url

1. 原始的url为:

https://s413.notion.site/557024fb04f24f2ea19e487557abbaae?v=b2d8ec9e232144e596f40037707d674e&pvs=4
"url": "https://www.notion.so/b6fcf809ca5047b89f423948dce013a0?v=03ddc4d6130a47f8b68e74c9d0061de2",

2. 将 b6fc...de2 这段字符修改为 步骤3.1 中的网址后缀(也就是 2c4dc...b594)

3. 对应到本文中也就是修改为:

"url": "https://www.notion.so/2c4dc4affe68463da4f61f8fa93406e0?v=9ad1da13a555443598a33b3bfc3db594"

5. 创建 Personal access token

5.1. 打开 Github.com,依次点击 右上角头像 → Settings → Developer settings → Personal Access Tokens → 右上角Generate new token → 按照示例修改下面

5.2. 最后点击最下方的 Generate token ,就会生成一个字符串,复制这个字符串备用【注意千万别泄露这个字符串,有安全风险

6. 回到你在 步骤4 中fork的名为 notablog-starter 仓库,依次点击 settingssecretsactionsNew repository secret, Name 填为 ACCESS_TOKEN ,Value 就是上一步( 步骤5.2 )生成的字符串,具体如图所示:

7. 回到你在 步骤4 中fork的名为 notablog-starter 仓库,依次点击 ActionsNew workflowset up a workflow yourself

7.1. 使用下方代码覆盖原始文件,注意代码需要修改两处位置:

    # This is a basic workflow to help you get started with Actions

    name: Github Pages

    # Controls when the workflow will run
    on:
      schedule:
    		# 下一行是说在每天的国际标准时间23点(北京时间早上7点)触发该任务
    		# 你可以随意修改
        - cron: '0 23 * * *'
      # Allows you to run this workflow manually from the Actions tab
      workflow_dispatch:

    # A workflow run is made up of one or more jobs that can run sequentially or in parallel
    jobs:
      # This workflow contains a single job called "build"
      build:
        # The type of runner that the job will run on
        runs-on: ubuntu-latest

        # Steps represent a sequence of tasks that will be executed as part of the job
        steps:
          # 拉取代码
          - name: Checkout
            uses: actions/checkout@v2
          # 1、生成静态文件
          - name: Build
            run: npm i -g notablog && notablog generate .
          # 2、部署到 GitHub Pages
          - name: Deploy
            uses: JamesIves/github-pages-deploy-action@v4.2.5
            with:
              token: ${{ secrets.ACCESS_TOKEN }}
              repository-name: FizzerYu/FizzerYu.github.io # 修改这里
              BRANCH: main  # 如果你的仓库默认分支是 master 记得修改这里
              FOLDER: public

7.2. 上方代码需要修改 repository-name ,具体就是步骤2中创建的仓库的 `git clone` 地址,比如说:

# git clone 地址为:
git@github.com:FizzerYu/FizzerYu.github.io.git
# 因此 repository-name 为:
FizzerYu/FizzerYu.github.io

7.3. 注意 步骤2 中创建的仓库默认分支名是否与 BRANCH 参数一致

7.4. 按照要求修改完成后保存:

8. 按照下图要求依次点击:

9. 稍等片刻(大概10min内),就可以打开你的github pages查看啦!比如说我的网址 `FizzerYu.github.io`

测试

1. 在notion中找到复制出来的模板,复制一行数据

2. 然后随便写点东西,再重复步骤8、9,或者等待一天,就可以看到新的文章啦!