公開状態は「ラベル」で管理する
この CMS では、記事の公開状態を GitHub のラベルで管理します。専用の管理画面は必要ありません。
使うラベル
| ラベル | 意味 |
|---|---|
status:draft |
下書き(サイトに表示されない) |
status:published |
公開(サイトに表示される) |
新規 Issue はテンプレートにより status:draft で作成されます。公開したくなったらラベルを status:published に変更するだけです。
切り替え方
公開する
- Issue(または Discussion)を開く
- 右サイドバーの「Labels」をクリック
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ラベルで制御 - 新規記事は自動で「下書き」スタートなので安心
- ラベルを変えるだけで、数分後にサイトへ反映される