公開・非公開の切り替え:status:published / status:draft ラベルの使い方

ラベル1つで記事の公開・非公開を切り替える、この CMS の仕組みを説明します。
blog
Published

August 2, 2026

公開状態は「ラベル」で管理する

この CMS では、記事の公開状態を GitHub のラベルで管理します。専用の管理画面は必要ありません。

使うラベル

ラベル 意味
status:draft 下書き(サイトに表示されない)
status:published 公開(サイトに表示される)

新規 Issue はテンプレートにより status:draft で作成されます。公開したくなったらラベルを status:published に変更するだけです。

切り替え方

公開する

  1. Issue(または Discussion)を開く
  2. 右サイドバーの「Labels」をクリック
  3. status:published を追加し、status:draft を外す

下書きに戻す(非公開化)

逆に status:draft を付けて、status:published を外します。

何が起きるのか

ラベルを変更すると GitHub Actions が自動で再ビルドします。

  • 公開にした記事 → posts/{slug}/index.qmd が生成され、サイトに表示
  • 非公開にした記事 → 次回ビルドで一覧から消える

つまり「ラベルを変える = サイトの内容を変える」という体験です。

実際の動作(技術的な補足)

ビルドスクリプトは GitHub API で label:"status:published" の記事だけを取得します。

const q = `repo:${REPO} label:"status:published" is:issue`;

status:published が付いていない記事はそもそも取得されないため、下書きが誤って公開されることはありません

その他のトリガー

再ビルドが走るのはラベル変更だけではありません。

きっかけ
イベント Issue の作成 / 編集 / ラベル変更
定期 15分ごとのスケジュールビルド
手動 Actions タブから workflow_dispatch

まとめ

  • 公開/非公開は status:published / status:draft ラベルで制御
  • 新規記事は自動で「下書き」スタートなので安心
  • ラベルを変えるだけで、数分後にサイトへ反映される