このブログを Astro で始める

公開状態を一箇所で判定し、下書きを出さない技術ブログの最小構成を記録します。

このサイトは、クラウド開発で調べた内容を継続して残すための技術ログです。最初の記事では、公開経路を小さく保つために決めた構成をまとめます。

Astro を選んだ理由

記事の frontmatter をスキーマで検証しながら、Markdown と MDX を静的な HTML にできます。記事本文には不要な JavaScript を配らず、操作に応答する UI だけに処理を限定できます。

公開状態を一箇所で判定する

一覧ごとに条件を書くと、RSS だけに下書きが混ざるような事故が起きます。そこで、すべての生成経路が同じ関数から公開記事を受け取ります。

const published = posts.filter(
  (post) => post.data.status === 'published',
);

状態ごとの扱いは次のとおりです。

status ビルド対象 用途
draft いいえ 執筆中
reviewed いいえ 公開前の確認済み原稿
published はい 一覧・記事・RSS・サイトマップ

本文と操作の動きを分ける

本文、見出し、コード、表は静止させます。カード、ナビゲーション、テーマ切替など、操作の結果を伝える部分だけが応答します。動きを減らす設定では、その応答も止めます。

次に確認すること

実際の記事を公開し、執筆から公開までにかかった時間を記録します。仕組みの追加は、運用で詰まった箇所が見つかってから判断します。