EmDashテーマは、create-astroを介して配布される完全なAstroサイト(ページ、レイアウト、コンポーネント、スタイル)です。また、初回実行時にコレクション、フィールド、メニュー、リダイレクト、サンプルコンテンツでデータベースを初期化するシードファイルも含まれています。
テーマが提供するもの
テーマは以下を含む動作するAstroプロジェクトです:
- Pages — コンテンツをレンダリングするAstroルート(ホームページ、ブログ投稿、アーカイブなど)
- Layouts — 共有HTML構造
- Components — 再利用可能なUI要素(ナビゲーション、カード、フッター)
- Styles — CSSまたはTailwind設定
- シードファイル — CMSにどのコンテンツタイプとフィールドを作成するかを指示するJSON
テーマ構造
テーマは次のレイアウトを持っています:
my-theme/
├── package.json # テーマメタデータ + EmDash設定
├── astro.config.mjs # Astroインテグレーション設定
├── src/
│ ├── live.config.ts # Live Collections設定
│ ├── pages/ # Astroルート
│ ├── layouts/ # レイアウトコンポーネント
│ └── components/ # UIコンポーネント
└── .emdash/
├── seed.json # スキーマ + サンプルコンテンツ
└── uploads/ # オプションのローカルメディアファイル
テーマがサイトを起動する方法
テーマからサイトを作成するには、次の手順に従います:
create-astroがテンプレートからプロジェクトを作成npm installとnpm run devを実行- 初回の管理画面訪問時にセットアップウィザードが自動的に実行
- ウィザードがシードファイルを適用し、コレクション、メニュー、リダイレクト、コンテンツを作成
- サイトが使用可能に
ユーザー向け
テーマを選び、ウィザードを実行し、編集を開始。データベースの知識は不要です。
開発者向け
テーマは標準のAstroプロジェクトです。スキャフォールディング後に自由にカスタマイズできます。
テーマのインストール
次のコマンドは、公式テーマテンプレートからサイトを作成します:
npm create astro@latest -- --template @emdash-cms/template-blog
GitHubでホストされているコミュニティテーマは、github:テンプレートプレフィックスを使用します:
npm create astro@latest -- --template github:user/emdash-portfolio
スキャフォールディング後、依存関係をインストールして開発サーバーを起動します:
cd my-site
npm install
npm run dev
http://localhost:4321/_emdash/adminにアクセスしてセットアップウィザードを完了してください。
セットアップウィザード
セットアップウィザードは、初回の管理画面訪問時に自動的に実行されます。次の手順を実行します:
- サイトタイトル、タグライン、管理者資格情報の入力を求める
- サンプルコンテンツを含めるオプションを提供
- シードファイルをデータベースに適用
- 管理ダッシュボードにリダイレクト
公式テーマ
EmDashは公式スターターテーマを提供しており、それぞれローカル(SQLite + ファイルシステム)およびCloudflare(D1 + R2)バリアントで利用可能です:
| テーマ | 説明 | 使用例 |
|---|---|---|
@emdash-cms/template-blog | 投稿、ページ、カテゴリー、ダークモードを備えたミニマルなブログ | 個人ブログ、シンプルなサイト |
@emdash-cms/template-portfolio | プロジェクト、セリフ体タイポグラフィ(Playfair Display)、画像重視のレイアウトを備えた編集スタイルのポートフォリオ | フリーランサー、エージェンシー、クリエイティブ |
@emdash-cms/template-marketing | カスタムPortable Textブロック(ヒーロー、機能、推薦文、価格、FAQ)を備えた大胆なマーケティングサイト | ランディングページ、SaaSサイト、製品マーケティング |
Cloudflareバリアント
D1とR2を使用したCloudflare Workersへのデプロイには、次のコマンドのようにテンプレート名に-cloudflareを追加します:
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が含まれています。
インストール後のカスタマイズ
セットアップウィザードが完了すると、サイトは標準のAstroプロジェクトになります。他のAstroサイトと同様にカスタマイズできます:
src/pages/でページを編集src/layouts/でレイアウトを変更- 管理UIを介してコレクションを追加
- Astroインテグレーションをインストール
- Astroが実行される場所であればどこでもデプロイ
シードファイルは初期セットアップ時にのみ使用されます。その後は、管理パネルまたはCLIでコンテンツモデルを管理します。