このブログを更新していくテンションを上げるためによさげな有料テーマを導入しました。

もともとコードではなく記事を書くことに集中したいがためにフルマネージドのGhostを選択したのですが、運営しているとどうしてもCode Injectionだけでは対応できない部分にも手を加える必要が出てきます。今回の場合だと項目の日本語のローカライズであったり、トップページの著者一覧セクションが不要だったり。

ということでカスタムテーマを作成していくわけですが、GhostはWordPressと違って子テーマ的な機能がありません。これはShopifyなんかも同じで、子テーマ機能は結局親テーマが後方互換を考えなければならなかったりと開発速度を落としてしまったりとか色々問題があるからなんでしょう。というわけで改造テーマはGitで管理していきます。

Gitで管理するならば、リポジトリにプッシュした段階で自動でデプロイまでやってくれると楽ちんです。Ghostは公式でGithub Actionsのガイドを公開しているのでこれに従えば簡単でした。

Official Ghost + GitHub Integration
Set up simple continuous integration of your Ghost theme to deploy directly to your Ghost website with GitHub Actions. Share code snippets with GitHub Gists 👨‍💻

Ghostの管理画面からCustom Integrationを作成してAdmin API keyとAPI URLを入手。

Githubの方でSettings → Secrets and variables → Actionsで、GHOST_ADMIN_API_URLGHOST_ADMIN_API_KEY に値を設定。

リポジトリに公式のワークフローのYAMLを設置してプッシュ。

name: Deploy Theme
on:
  push:
    branches:
      - master
      - main
jobs:
  deploy:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v3
      - name: Deploy Ghost Theme
        uses: TryGhost/action-deploy-theme@v1
        with:
          api-url: ${{ secrets.GHOST_ADMIN_API_URL }}
          api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}

あとはプッシュすると自動でDeployされます。

便利。