Snowpeak
Astro Content Layer を monorepo で整理する記事のサムネイル

記事

Astro Content Layer を monorepo で扱う

shared schema と locale 別公開状態を両立させる構成を整理します。

このサンプル記事は、同じ 5 桁 translationKey を持つ日本語版と英語版が存在するケースを表しています。

packages/content に原稿を集約する

記事本体は packages/content に集約し、一覧や検索では sitelocale の両方でフィルタします。

そのため、日本語一覧には日本語公開済みの記事だけが表示され、言語スイッチャーも存在する翻訳先だけにリンクできます。

content layer の配置イメージ

運用ルールを先に決める

locale ごとに slug が変わっても、翻訳同士は translationKey で結びつけます。

この形にしておくと、将来的に Cloudflare Workers で fallback を扱うときも、記事単位の判定がやりやすくなります。

Hiroyuki

Hiroyuki

編集者 / オーナー

Astro、Cloudflare、運用設計を軸に、実装と編集の両方を見ています。