モダン麻雀の公式サイト - WordPress から Astro へ移行
- Astro 5.x - 静的サイトジェネレーター
- Bun - 高速JavaScriptランタイム(miseで管理)
- dotenvx - 環境変数管理
- Cloudflare Pages - ホスティング
- Cloudflare R2 - 画像ストレージ
- MDX - Markdown + コンポーネント
- mj-tiles - 麻雀牌表示
- mise - ランタイムバージョン管理
- Git
git clone <repository-url>
cd modern-jan-hpmiseが自動的に.mise.tomlから必要なランタイムをインストールします:
mise installこれにより以下がインストールされます:
- Bun 1.3.6+
- Node.js 20.x(Astro用)
bun installbun run devブラウザで http://localhost:4321 を開きます。
bun run dev # 開発サーバー起動
bun run build # 本番ビルド
bun run preview # ビルド結果のプレビュー詳細は docs/r2-upload-guide.md を参照してください。
# 環境変数の設定
cp .env.example .env
# .envファイルを編集してR2 APIトークンを設定
# 参照されている画像を抽出
bun run extract:images
# ドライラン(テスト)
bun run upload:images:dry
# 本番アップロード(変換なし)
bun run upload:images:no-convert
# 本番アップロード(AVIF変換)
bun run upload:images
# カスタムドメイン設定(r2.modern-jan.com)
bun run setup:r2-domain.
├── src/
│ ├── components/ # Astroコンポーネント
│ ├── content/
│ │ ├── config.ts # Content Collections設定
│ │ ├── posts/ # ブログ記事(MDX)
│ │ └── pages/ # 固定ページ(MDX)
│ ├── layouts/ # レイアウトコンポーネント
│ ├── pages/ # ページルーティング
│ └── styles/ # グローバルスタイル
├── public/
│ └── _redirects # 301リダイレクト設定
├── scripts/ # ユーティリティスクリプト
├── docs/ # ドキュメント
└── logs/ # ログファイル
src/content/posts/*.mdx
---
title: 記事タイトル
description: 記事の説明
publishedAt: 2024-01-01
tags: [タグ1, タグ2]
category: カテゴリ
image: https://r2.modern-jan.com/path/to/image.jpg
legacySlug: /2024/01/01/old-slug/ # 旧URL(301リダイレクト用)
---src/content/pages/*.mdx
---
title: ページタイトル
description: ページの説明
---- Cloudflare Dashboard → Pages → Create a project
- GitHubリポジトリを接続
- ビルド設定:
- Framework preset: Astro
- Build command:
bun run build - Build output directory:
dist
.envファイルで管理(dotenvx使用):
# Cloudflare Account ID
CLOUDFLARE_ACCOUNT_ID=your-account-id
# Cloudflare API Token(カスタムドメイン設定用)
# Create at: https://dash.cloudflare.com/profile/api-tokens
# Template: Edit zone DNS
CLOUDFLARE_API_TOKEN=your-api-token
# R2 API Token(画像アップロード用)
# Create at: https://dash.cloudflare.com/ -> R2 -> Manage R2 API Tokens
R2_ACCESS_KEY_ID=your-access-key-id
R2_SECRET_ACCESS_KEY=your-secret-access-key- Astro Documentation
- Bun Documentation
- dotenvx Documentation
- Cloudflare Pages Documentation
- Cloudflare R2 Documentation
All rights reserved.