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

ひとことで言うと

EmDashのサイトは、ページを作るAstro、コンテンツを管理するEmDash、サイトを動かす実行環境の3つで成り立っています。3つは別々のサービスではなく、1つのアプリケーションとしてデプロイします。

図:3つの役割と担当

1つのアプリケーションコンテンツを取得ページを作る(フレームワーク)Astroのページとコンポーネントコンテンツを管理する(CMS)EmDashの管理画面とランタイデータベースコンテンツモデル・エントリー・ユーザー・設メディアの保存アップロードしたファイルサイトを動かす(実行環境)CloudflareWorkersまたはNode.js
図のテキストを読む
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/

次に読むページ