多くの個人ブログは最終的に「保守」に負けます。データベースのバックアップ、ソフトウェアの更新、そしてある日サーバーの期限が切れ、数年分の文章が一緒に消えてしまう。astro-blog の出発点は素朴です——コンテンツはファイルである。記事は Markdown、ノートは Markdown、サイト設定は JSONC、すべてが 1 つの Git リポジトリの中にあります。リポジトリがある限りブログは存在し、引っ越しはクローンして再ビルドするだけです。
Astro で構築され、ビルド成果物は純粋な静的ファイル。GitHub Pages、Cloudflare Pages、EdgeOne Pages、あるいはごく普通のレンタルスペースなど、どんな静的ホスティングにも置けます。
何でできているか
コンテンツ即ファイル
src/content/posts/ に言語別フォルダで記事を、src/content/notes/ にノートを、src/data/ の JSONC ファイルにサイト全体の設定(サイト情報、ナビゲーション、About ページ、サービス一覧)を保持します。データベースもランタイムのクエリもなく、ビルド時にすべて静的ページへコンパイルされます。
純粋な静的生成
ビルドのたびに Astro が Markdown を HTML にレンダリングし、言語ごとにページを生成します。速度はホスティングの CDN 次第、セキュリティは自然とシンプルです——攻撃される動的インターフェースが存在せず、ページはファイルそのものだからです。
5 つの言語
サイトには簡体字中国語、繁体字中国語、英語、日本語、韓国語の 5 言語が組み込まれています。各記事は 5 バージョン持つことができ、UI の文言もすべて言語別に整理されているため、言語を切り替えるとタイトルだけが訳されたページではなく、サイト全体で一貫した言語体験が得られます。
デザイン言語
浮遊するカプセル型ナビゲーション
ページ上部にはすりガラス質感のカプセル型ナビゲーションが浮かび、現在のページは滑って移動する小さなバブルで示されます。ダークモード切替ボタンにはサイトの象徴である ◐ の記号が使われ、システム連動と手動切替の両方に対応します。
タイポグラフィと余白
本文は読むことを最優先に組版されています。快適な行間、抑制の効いた見出し階層、シンタックスハイライト付きのコードブロック。モバイルの余白は個別に調整され、スマホでは記事コンテナの角丸をやめて区切り線にすることで、デスクトップと同じ空気感を保ちます。
こんな人に向いています
- プラットフォームに縛られず、長期的に自分でコントロールできる個人サイトがほしい書き手;
- Git でファイルを管理することに慣れ、「公開 = ファイルをコミットすること」を受け入れられるエンジニア;
- 複数言語の読者を支えたい書き手。
すぐ使えるオンライン編集体験がほしい場合は、姉妹プロジェクトの astro-blog-admin がその隙間を埋めます。次の記事では、このブログの多言語がどう組織されているかを見ていきます。
