層2 必要な役割 › サイトを作る3つの役割
サイトを作る3つの役割
ひとことで言うと
EmDashのサイトは、ページを作るAstro、コンテンツを管理するEmDash、サイトを動かす実行環境の3つで成り立っています。3つは別々のサービスではなく、1つのアプリケーションとしてデプロイします。
図:3つの役割と担当
図のテキストを読む
flowchart TB
subgraph APP["1つのアプリケーション"]
F["ページを作る<br/>(フレームワーク)<br/>Astroのページとコンポーネント"]
CMS["コンテンツを管理する<br/>(CMS)<br/>EmDashの管理画面とランタイム"]
end
F -- "コンテンツを取得" --> CMS
CMS --> DB["データベース<br/>コンテンツモデル・エントリー・ユーザー・設定"]
CMS --> ST["メディアの保存先<br/>アップロードしたファイル"]
RUN["サイトを動かす(実行環境)<br/>Cloudflare WorkersまたはNode.js"] --- APP
図の補足
| 役割 | EmDashのサイトで担うもの | 公式の説明 |
|---|---|---|
| ページを作る | Astroのページとコンポーネント | サイトのHTMLとデザインを決める。公開ページのためにエントリーを取得する |
| コンテンツを管理する | EmDashの管理画面とEmDashランタイム | 管理画面はエントリーとメディアを保存する。ランタイムはコンテンツモデル、公開ルール、取得、プラグイン、APIの動作を適用する |
| サイトを動かす | Cloudflare Workers、またはNode.js | Astroのアダプターが、実行環境向けにプロジェクトを出力する |
- 公開ページと管理画面は、同じEmDashランタイム、データベース、メディアの保存先を共有します。
- EmDashのサイトは、管理画面・API・最新のコンテンツをアクセス時に返すため、サーバーで描画する設定(
output: "server")とアダプターが必要です。 - WordPressと比べると、Astroがテーマにあたる部分(ルート、レイアウト、コンポーネント、サーバーでの描画)を担当します。
根拠にした公式ページ
- EmDash公式「アーキテクチャ」(本サイトの訳):https://docs.emdashcms.com/concepts/architecture/
- EmDash公式「WordPress開発者のためのEmDash」(本サイトの訳):https://docs.emdashcms.com/coming-from/wordpress/
- Astro公式「Astroを選ぶ理由」:https://docs.astro.build/ja/concepts/why-astro/
- Astro公式「オンデマンドレンダリング」:https://docs.astro.build/ja/guides/on-demand-rendering/