このサイトは非公式の日本語訳です。Cloudflare・EmDashプロジェクトが運営するサイトではありません。

このページで分かること

  • EmDashのテーマは create-astro のテンプレートとして配布されるAstroのプロジェクト全体であることと、テンプレートに含まれるファイル
  • 公式テンプレートの一覧(blankstarterblogportfoliomarketing のNode版とCloudflare版)とインストール方法
  • 初回のセットアップでシードファイルを探す順番と適用のされ方、インストールしたサイトの編集方法
難易度
入門
読む時間
3分
このページの目次

EmDashのテーマは、create-astro のテンプレートとして配布される、Astroのプロジェクト全体です。公開側のルートとコンポーネント、EmDashの実行時の設定、サイトの最初のコンテンツモデルを定める任意のシードファイルを含みます。

実行時に読み込むテーマのパッケージや、テンプレートの階層構造はありません。雛形を作ったあとは、テーマのファイルはサイトのものになり、直接編集できます。

テーマの中身

現在のEmDashのテンプレートは、次のパスを使います。

Template structure
astro.config.mjs
package.json
seed/
└── seed.json
src/
├── components/
├── layouts/
├── live.config.ts
├── pages/
└── styles/
  • astro.config.mjs は、サーバー出力、デプロイ用のアダプター、EmDash、データベース、ストレージを設定します。
  • src/live.config.ts は、_emdash ライブコレクションを登録します。
  • src/pages/ は、公開側のルートを定義します。
  • seed/seed.json では、最初のコレクション、フィールド、設定、タクソノミー、バイライン、メニュー、リダイレクト、ウィジェットエリア、セクション、サンプルコンテンツを宣言できます。
  • package.json#emdash.seed は、シードファイルの場所を指します。

blankテンプレートは、意図的にユーザーのシードを持たず、EmDashに組み込まれた標準のシードを使います。現在のそれ以外のテンプレートは、seed/seed.json を指しています。

本サイトの補足 やさしい解説

WordPressのテーマは、インストール済みのWordPressに後から追加して切り替えるものです。EmDashのテーマは、サイトを作るときに使うAstroのプロジェクトの雛形そのものです。雛形を作ったあとは、テーマのファイルはそのまま自分のサイトのファイルになり、テーマを更新する仕組みや親テーマ・子テーマのような階層はありません。見た目もルートも、src/ の中のファイルを直接編集して変えます。

テンプレートのインストール

次のコマンドは、Node版のblogテンプレートから雛形を作ります。

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

Cloudflare Workersのプロジェクトには、対応する -cloudflare のパッケージを使います。

npm create astro@latest -- --template @emdash-cms/template-blog-cloudflare

現在のテンプレートのパッケージは次のとおりです。

用途 Node Cloudflare
空のプロジェクトの外枠 @emdash-cms/template-blank 現在は対応するものなし
基本的なページのサイト @emdash-cms/template-starter @emdash-cms/template-starter-cloudflare
投稿、ページ、カテゴリー、タグ、ウィジェット @emdash-cms/template-blog @emdash-cms/template-blog-cloudflare
制作実績のポートフォリオ @emdash-cms/template-portfolio @emdash-cms/template-portfolio-cloudflare
独自のPortable Textのレンダラーを持つマーケティングページ @emdash-cms/template-marketing @emdash-cms/template-marketing-cloudflare

雛形を作ったら、依存パッケージをインストールし、生成されたサイトを起動します。

cd my-site
npm install
npm run dev

http://localhost:4321/_emdash/admin を開きます。最初のアクセスではセットアップにリダイレクトされ、サイトの基本情報と管理者の情報を入力します。選んだテンプレートにサンプルのエントリーがある場合は、ウィザードでそれを含めるかどうかも選べます。ルートが描画する現実的なコンテンツがそろうため、デザインを評価している間は含めておくと役立ちます。

初回のセットアップ

EmDashは、ビルド時にシードを読み込みます。次の順番で探します。

  1. .emdash/seed.json
  2. package.json#emdash.seed のパス。
  3. seed/seed.json
  4. ユーザーのシードが見つからない場合は、組み込みの標準のシード。

管理画面への最初のアクセスで、セットアップウィザードはシードのメタデータを表示し、管理者がサンプルコンテンツを含めるかどうかを選べるようにします。ウィザードは、空のデータベースにシードを適用し、セットアップの完了を記録します。以降の起動では、既存のサイトにシードを再度適用しません。

本サイトの補足 やさしい解説

WordPressでは、インストールしたあとに管理画面で投稿タイプやカテゴリーを用意していきます。EmDashのシードファイルは、コレクションやフィールド、サンプルコンテンツなどの最初の状態をまとめて書いておき、初回のセットアップで一度だけ適用するためのファイルです。セットアップが終わったサイトでは、seed/seed.json を書き換えても、既存のサイトには反映されません。コレクションやフィールドを変えるときは、管理画面の「コンテンツタイプ」で変更します。

インストールしたサイトのカスタマイズ

生成されたプロジェクトを直接編集します。

  • ルートのファイルは src/pages/ で変更します。
  • 共通のマークアップは src/layouts/src/components/ で変更します。
  • 最初のモデルは、初回のセットアップの前に seed/seed.json で変更します。
  • 既存のサイトのモデルは、管理画面の「コンテンツタイプ」で管理します。

再利用できるテンプレートを用意するにはテーマの作成を、シードの仕様の全体はシードファイル形式を参照します。