【Notion】notablogを使ってnotionブログを作ってみた"

NotionのAPIを使ってブログを作りたいと考えていたのですが,ReactやNext.jsを使ったものだとAPIを読み込むのに時間がかかったのと,シンプルなものがなかったのですが,notablogはシンプルでかつAPIにリクエストを送らないのでとても便利だったので書き残しておきます

全体はREADMEにある通り,以下のような感じで,タグが使えてメニューも作りやすいです.

github.com

作り方

まずnotablogの仕組みはコマンドを打ったときにAPIへリクエストを行いhtmlを生産するというものです.この作業を以下のような構成でgithub actionsを用いて自動化します.

リポジトリをクローン・またはフォーク

まずは次のリポジトリをクローン・またはフォークしてください.notablogの作成者が提供しているスターターキットです.

https://github.com/dragonman225/notablog-starter

Notionの設定

このテンプレートを複製して自分のNotionに導入してWebで公開をしておいてください.

https://www.notion.so/b6fcf809ca5047b89f423948dce013a0?v=03ddc4d6130a47f8b68e74c9d0061de2

config.jsonの設定

config.json"url"の部分にNotionの公開用urlを入れてください. ここが正しくできていないとAPIのリクエストができません.

.github/workflowsの設定

次にクローンしたフォルダの中に.github/workflows/deploy.ymlというファイルを追加してください.
その中に次のように記載します

name: Deploy to GitHub Pages

on:
  workflow_dispatch:
  schedule:
    - cron:  '0 0 * * *'

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [15, 16]

    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm i -g notablog
    - run: notablog generate .
    - name: Deploy
      uses: peaceiris/actions-gh-pages@v3
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./public

この状態だとページの更新はRuns at 00:00 UTC every day.になっています日本時間ではないので注意です.
変更はcron:の部分の値を変更すすことでできます.詳しくはcron 定期実行で調べてください

push

ここまでできたらgithubにコミットしてpushしましょう.
Notionにブログを書いておいて,定時になれば自動的に別ブランチにデプロイされます.

デプロイ先はgh-pagesブランチになっているのでgihub pagesのブランチ設定をすれば公開も完了です.

さらに詳しい内容はnotablogのREADME.mdに書いてあるので参照してください

github.com

では!