Notion文章自动发布到GitHub Pages

Posted on Sat, Feb 19, 2022

摘要

本方案需要依赖:

  1. Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
  2. dragonman225/notablog: Tell stories of your work with Notion (github.com)
  3. GitHub Actions文档 - GitHub Docs

最终可以实现:

  1. 有一个自己的网页 Github Pages
  2. 在Notion中写完任何文章后的一天内自动发布到 Github Pages 中,
  3. 成品请参考我的网页:FizzerYu

步骤

  1. 首先你要有个Github账号和Notion账号,如果你是学生的话可以领取 GitHub Student Developer Pack Notion for Education
  2. 创建一个新仓库,需要给这个仓库一个比较特殊的名字,比如说 userName.github.io ,注意这里的 userName 可以是任意你喜欢的名字,但是强烈推荐使用自己的github用户名
  3. 把这个 Notion表格模板 复制到自己的Notion账号中【右上角的 Duplicate 按钮】,把这个表格设置为公开【 点击右上角的 Share 按钮→ Share to web 打开 → 点击 Copy 按钮复制网址 】
    1. 比如说我复制出来的网址是 https://elemental-geology-c67.notion.site/2c4dc4affe68463da4f61f8fa93406e0?v=9ad1da13a555443598a33b3bfc3db594 ,打开这个网址检查一下是不是对应的表格模板
  4. fork仓库 ,修改 config.json 文件中的 url
    1. 原始的url为:
      "url": "https://www.notion.so/b6fcf809ca5047b89f423948dce013a0?v=03ddc4d6130a47f8b68e74c9d0061de2"
    2. 将 b6fc...de2 这段字符修改为 步骤2.a 中的网址后缀(也就是 2c4dc...b594)
    3. 对应到本文中也就是修改为:
      "url": "https://www.notion.so/2c4dc4affe68463da4f61f8fa93406e0?v=9ad1da13a555443598a33b3bfc3db594"
  5. 创建 Personal access tokens
    1. 打开 Github.com ,依次点击 右上角头像 → Settings → Developer settings → Personal Access Tokens → 右上角Generate new token → 按照示例修改下面
    2. 最后点击最下方的 Generate token ,就会生成一个字符串,复制这个字符串备用【注意千万别泄露这个字符串,有安全风险

  1. 回到你fork的名为 notablog-starter 仓库,依次点击 settings → secrets → actions → New repository secret, Name是 ACCESS_TOKEN ,Value 就是上一步生成的字符串(步骤5.b)

  1. 回到你fork的名为 notablog-starter 仓库,依次点击 Actions → New workflow → set up a workflow yourself

    a. 使用下方代码覆盖原始文件:

    # 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

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

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

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

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

  1. 按照下图要求依次点击:
  2. 稍等片刻(大概10min内),就可以打开你的github pages查看啦!比如说我的网址 FizzerYu.github.io

测试

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

  1. 然后随便写点东西,再重复步骤6、7,就可以看到新的文章啦!