コンテンツにスキップ

テーマの概要

EmDashテーマは、create-astroを介して配布される完全なAstroサイト(ページ、レイアウト、コンポーネント、スタイル)です。また、初回実行時にデータベースをコレクション、フィールド、メニュー、リダイレクト、サンプルコンテンツでブートストラップするシードファイルも含まれています。

テーマは、以下を含む動作するAstroプロジェクトです:

  • ページ — コンテンツをレンダリングするためのAstroルート(ホームページ、ブログ投稿、アーカイブなど)
  • レイアウト — 共有されるHTML構造
  • コンポーネント — 再利用可能なUI要素(ナビゲーション、カード、フッターなど)
  • スタイル — CSSまたはTailwind設定
  • シードファイル — CMSに作成するコンテンツタイプとフィールドを指示するJSON
my-theme/
├── package.json # Theme metadata + EmDash config
├── astro.config.mjs # Astro integration setup
├── src/
│ ├── live.config.ts # Live Collections configuration
│ ├── pages/ # Astro routes
│ ├── layouts/ # Layout components
│ └── components/ # UI components
└── .emdash/
├── seed.json # Schema + sample content
└── uploads/ # Optional local media files

テーマがサイトをブートストラップする仕組み

Section titled “テーマがサイトをブートストラップする仕組み”

テーマからサイトを作成すると、以下の手順が実行されます:

  1. create-astroがテンプレートからプロジェクトをスキャフォールド
  2. npm installとnpm run devを実行
  3. 初回の管理者アクセス時に、セットアップウィザードが自動的に実行
  4. ウィザードがシードファイルを適用し、コレクション、メニュー、リダイレクト、コンテンツを作成
  5. サイトが使用可能になります

ユーザー向け

テーマを選択し、ウィザードを実行して編集を開始。データベースの知識は不要です。

開発者向け

テーマは標準のAstroプロジェクトです。スキャフォールド後は自由にカスタマイズできます。

テンプレートを指定してcreate-astroを使用します:

Terminal window
npm create astro@latest -- --template @emdash-cms/template-blog

コミュニティテーマはGitHub経由で動作します:

Terminal window
npm create astro@latest -- --template github:user/emdash-portfolio

インストール後:

Terminal window
cd my-site
npm install
npm run dev

`http://localhost:4321/_emdash/admin“にアクセスしてセットアップウィザードを完了してください。

セットアップウィザードは、初回の管理者アクセス時に自動的に実行されます。以下の処理を行います:

  1. サイトタイトル、タグライン、管理者認証情報の入力を促す
  2. サンプルコンテンツを含めるオプションを提供
  3. シードファイルをデータベースに適用
  4. 管理者ダッシュボードにリダイレクト
┌────────────────────────────────────────────────────────┐
│ │
│ ◆ EmDash │
│ │
│ 新しいサイトへようこそ │
│ │
│ サイトタイトル: [最高のブログ ] │
│ タグライン: [考えとアイデア ] │
│ │
│ 管理者メール: [admin@example.com ] │
│ 管理者パスワード:[•••••••••••• ] │
│ │
│ ☑ Include sample content │
│ │
│ [Create Site →] │
│ │
│ Template: Blog Starter │
│ Creates: 2 collections, 3 pages, 1 post │
└────────────────────────────────────────────────────────┘

EmDashは公式スターターテーマを提供しており、各テーマはローカル(SQLite + ファイルシステム)バリアントとCloudflare(D1 + R2)バリアントで利用可能です:

テーマ説明ユースケース
@emdash-cms/template-blog投稿、ページ、カテゴリー、ダークモードを備えたミニマルなブログ個人ブログ、シンプルなサイト
@emdash-cms/template-portfolioプロジェクト、セリフ書体(Playfair Display)、画像中心のレイアウトを備えた編集スタイルのポートフォリオフリーランサー、代理店、クリエイター
@emdash-cms/template-marketingカスタムPortable Textブロック(ヒーロー、機能、お客様の声、価格、FAQ)を備えた大胆なマーケティングサイトランディングページ、SaaSサイト、製品マーケティング

Cloudflare Pages(D1およびR2)にデプロイする場合は、テンプレート名に-cloudflareを追加します:

Terminal window
npm create astro@latest -- --template @emdash-cms/template-blog-cloudflare
npm create astro@latest -- --template @emdash-cms/template-portfolio-cloudflare
npm create astro@latest -- --template @emdash-cms/template-marketing-cloudflare

これらのバリアントには、デプロイ設定用のwrangler.jsoncが含まれています。

インストール後のカスタマイズ

Section titled “インストール後のカスタマイズ”

セットアップウィザード完了後、サイトは標準のAstroプロジェクトになります。以下のように、任意のAstroサイトと同様にカスタマイズできます:

  • src/pages/内のページを編集
  • src/layouts/内のレイアウトを変更
  • 管理UI経由でコレクションを追加
  • Astroインテグレーションをインストール
  • Astroが動作する任意の場所にデプロイ

シードファイルは初期セットアップ中のみ使用されます。適用後は、スキーマはデータベース内に存在します。