EmDash テーマは、create-astro テンプレートとして配布される完全な Astro プロジェクトです。公開ルートとコンポーネント、EmDash ランタイム設定、サイトの初期コンテンツモデル用のオプションのシードファイルが含まれます。
ランタイムのテーマパッケージやテンプレート階層はありません。スキャフォールド後、テーマファイルはサイトに属し、直接編集できます。
テーマの内容
現在の EmDash テンプレートは次のパスを使います。
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はシードファイルを指します。
ブランクテンプレートは意図的にユーザーシードを持たず、EmDash の組み込みデフォルトシードにフォールバックします。他の現行テンプレートは seed/seed.json を指します。
テンプレートをインストールする
次のコマンドは Node のブログテンプレートをスキャフォールドします。
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 |
| バージョン付きブロックから構成するマーケティングページ | @emdash-cms/template-marketing | @emdash-cms/template-marketing-cloudflare |
スキャフォールド後、依存関係をインストールして生成されたサイトを起動します。
cd my-site
npm install
npm run dev
http://localhost:4321/_emdash/admin を開きます。初回訪問はセットアップにリダイレクトされ、サイトの識別情報と管理者の詳細を入力します。選択したテンプレートにサンプルエントリーがある場合、ウィザードで含めるか省略するかを選べます。デザインを評価するときは、ルートが描画する現実的なコンテンツがあるため、含めると便利です。
初回セットアップ
EmDash はビルド時にシードを読みます。次の順で探します。
.emdash/seed.json。package.json#emdash.seedのパス。seed/seed.json。- ユーザーシードが見つからないときの組み込みデフォルトシード。
初回の管理画面訪問時、セットアップウィザードはシードのメタデータを表示し、管理者がサンプルコンテンツを含めるかを選べるようにします。空のデータベースにシードを適用し、セットアップ完了を記録します。以降の起動では、既存サイトにシードを再適用しません。
インストールしたサイトをカスタマイズする
生成されたプロジェクトを直接編集します。
src/pages/のルートファイルを変更する。src/layouts/とsrc/components/の共有マークアップを変更する。- 初回セットアップ前に
seed/seed.jsonの初期モデルを変更する。 - 管理画面の Content Types で既存サイトのモデルを管理する。