このサイトの構成をzola+GitHub Pagesに変更した

記事を書いた日: 2023-08-24 (更新履歴)

要約: 2023年にこのサイトの構成を更新したときの備忘録として、それぞれの理由などの記録を残しておく。

静的サイトジェネレーターをHugoからzolaに変えた

zolaはRustで書かれた静的サイトジェネレーター(static site generator; SSG)である。 zolaは2016-12から開発されている。 私が前に使っていたJekyll (2008-10〜)やHugo (2013-06〜)と比較するとかなり新しい部類に入る。

今回Hugoからzolaに変えたわけだが、他にもあるSSGの中からzolaを選んだ強い理由はない。 Hugoに不満があったわけではないが、せっかく作り直すなら別の似たようなツールを試しておこうかな、と思ってzolaを選んでみた1。 今のところは使い勝手はそこまで変わらない。

1

ただ、zolaを選んでおいてこんなことを言うのも変だが、速さと機能の多さなどを考慮に入れると、2023年現在ではHugoのほうが優れているような気はする。 zolaのREADMEにはHugoのテンプレートエンジンに不満があったと書かれているので、そこは改善されていると期待はできるかもしれない。 あとzolaにはHugoの .GitInfo に相当する機能がない。一応リクエストは上がっているが、対応される見込みは今のところなさそう。

ローカルでの手動ビルド&デプロイから、GitHub Actionsでの自動ビルド&デプロイに変えた

せっかくGitHub Pagesを使うのであれば(?)、GitHub Actionsを使って、masterブランチにpushされるたびにデプロイされるようにしておきたい。 このブログでは、ビルド+デプロイの処理は build-deploy.yaml (以下のyaml)で行っている。

name: Zola on GitHub Pages

on:
 push:
  branches:
   - master

jobs:
  build:
    name: Build and upload
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v3.5.3
    - name: Install zola
      uses: taiki-e/install-action@v2.16.0
      with:
        tool: zola@0.17.2
    - name: Build
      run: |
        zola build
    - name: Upload artifact
      uses: actions/upload-pages-artifact@v2.0.0
      with:
        path: ./public

  deploy:
    name: Deploy
    needs: build
    permissions:
      pages: write
      id-token: write
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v2.0.4

後半はほとんど Publishing with a custom GitHub Actions workflow - GitHub Docs をそのまま実行している。 ただし、この機能は一応まだベータ版ということになっているのでそこは少し気にしておく必要がありそう。

ホスティング先をAmazon S3からGitHub Pagesに変えた

ホスティング先については、これまではなにも噛ませずにS3に置いている状態になっていた。 まあアクセス数が多いわけではないのでそのままでもいいといえばいいのだが、さすがに改善したほうがいいかなと思って、GitHub Pagesに変えた。 そこまでヘビーに使うわけでもないし2、GitHub Pagesで十分だと思われる。

GitHub Pagesのドメイン (oshikiri.github.io) のままでもいいのだが、せっかくドメインを持っているのでカスタムドメインを設定しておく。 カスタムドメインの設定についても調べてみたが、どうやらかなり簡単にできるようだった。

2

どういった状況になるとGitHub Pagesで足りなくなるか?→ GitHubのドキュメント(2023年8月現在)によればサイズ制限(サイトが1GB未満)、デプロイのタイムアウトの制限(10分以内)、帯域幅制限(100GB/月まで)など、いくつか制限はあるのだが、個人のブログの通常の使い方であればほぼ引っかかることはないと思われる。 帯域幅制限については、仮に1PVで100KBやりとりするとして、100GB / 100KB ≒ 1,000,000 なので100万PV/月になると問題になるかもしれないが、普通は気にしなくて良さそう。

その他

この記事にリンクしている記事