このブログを Astro で始める
公開状態を一箇所で判定し、下書きを出さない技術ブログの最小構成を記録します。
- 公開日
- 更新日
このサイトは、クラウド開発で調べた内容を継続して残すための技術ログです。最初の記事では、公開経路を小さく保つために決めた構成をまとめます。
Astro を選んだ理由
記事の frontmatter をスキーマで検証しながら、Markdown と MDX を静的な HTML にできます。記事本文には不要な JavaScript を配らず、操作に応答する UI だけに処理を限定できます。
公開状態を一箇所で判定する
一覧ごとに条件を書くと、RSS だけに下書きが混ざるような事故が起きます。そこで、すべての生成経路が同じ関数から公開記事を受け取ります。
const published = posts.filter(
(post) => post.data.status === 'published',
);
状態ごとの扱いは次のとおりです。
| status | ビルド対象 | 用途 |
|---|---|---|
draft |
いいえ | 執筆中 |
reviewed |
いいえ | 公開前の確認済み原稿 |
published |
はい | 一覧・記事・RSS・サイトマップ |
本文と操作の動きを分ける
本文、見出し、コード、表は静止させます。カード、ナビゲーション、テーマ切替など、操作の結果を伝える部分だけが応答します。動きを減らす設定では、その応答も止めます。
次に確認すること
実際の記事を公開し、執筆から公開までにかかった時間を記録します。仕組みの追加は、運用で詰まった箇所が見つかってから判断します。