Prosefly × Astro
Astro サイトのための Git ベース CMS。
Astro Content Collections 向けの Git ベース CMS。チームで Markdown・MDX と frontmatter を編集し、差分を確認して GitHub に公開できます。Aster の例で、既存の Astro ビルドを使う流れを紹介します。
既存のコレクションと対応するスキーマの項目を読み取ります。接続のために CMS 用のスキーマ、コンテンツ API、Prosefly パッケージを追加する必要はありません。
Aster の記事から、サイトの更新まで。
Aster は、制作実績と文章のために私たちが作ったオープンソースの Astro テンプレートです。Blog コレクションの Defaults With an Exit を使い、編集、Git の差分確認、公開後のページまで進みます。既存の対応する Astro コレクションにも同じ流れを使えます。
コンテンツの定義はひとつ
src/content.config.ts が引き続きフィールドと形式を定義します。Prosefly は対応する定義から編集フォームを作り、Astro は同じファイルを検証します。
既存のファイルをビジュアル編集
本文と属性を並べて編集できます。Aster に含まれる Prosefly MDX コンポーネントも、対応するものは画面から操作でき、ソース全体も開けます。
確認した変更をリポジトリへ
まず下書きを保存し、frontmatter と本文の差分を確認します。コミットまたはプルリクエストで公開すると、既存の Astro ビルドがサイトを更新します。
リポジトリ内のファイル例を見る
- astro.config.mjs
- src/content.config.ts
- src/content/blog/defaults-with-an-exit.mdx
- src/content/projects/aster.mdx
選択中のリポジトリファイル
import { defineCollection, reference } from 'astro:content'
import { glob } from 'astro/loaders'
import { z } from 'astro/zod'
const blog = defineCollection({
loader: glob({
base: './src/content/blog',
pattern: '**/*.{md,mdx}',
}),
schema: z.object({
title: z.string(),
description: z.string(),
publishedAt: z.coerce.date(),
updatedAt: z.coerce.date().optional(),
category: z.string(),
tags: z.array(z.string()).default([]),
project: reference('projects').optional(),
draft: z.boolean().default(false),
}),
})Astro CMS の流れを体験。
ご自身の Aster リポジトリを接続し、検出されたコレクションを確認。記事を編集し、ファイルの差分を見てから公開します。
リポジトリを接続
Prosefly へのアクセスを許可した GitHub リポジトリを選択してください。
利用できるリポジトリがありません
Prosefly GitHub App をインストールしてから、リポジトリの選択に戻ってください。
3. リポジトリを選択
この組織に接続するリポジトリを選択してください。
検索条件に一致するリポジトリがありません
次に各リポジトリをスキャンし、コンテンツスペースを確定します。
prosefly/astro-template-aster
対象ブランチ: main
リポジトリの内容を読み取るだけで、Git上のファイルは変更しません。
コンテンツスペースを確定
リポジトリの内容を読み取るだけで、Git上のファイルは変更しません。
.AstroProsefly
src/content/blogコンテンツスキーマから取得した定義 · src/content.config.ts
プロパティ(8件)
title必須- string
description必須- string
publishedAt必須- date
updatedAt- date
category必須- string
tags- string[]
project- Reference → projects
draft- boolean
src/content/projectsコンテンツスキーマから取得した定義 · src/content.config.ts
プロパティ(10件)
title必須- string
description必須- string
year必須- number
status必須- enum
tags- string[]
website- string (url)
repository- string (url)
featured- boolean
order- number
draft- boolean
astro-template-aster
このスペース内のコレクションを横断してコンテンツと下書きを確認できます。
| コンテンツ | コレクション | ステータス | 更新日時 | 操作 |
|---|---|---|---|---|
Astro Theme Lotuslotus.mdx | Projects | 同期済み | たった今 | |
Astro Theme Dahliadahlia.mdx | Projects | 同期済み | たった今 | |
Astro OpenAPIastro-openapi.mdx | Projects | 同期済み | たった今 | |
Astro Componentsastro-components.mdx | Projects | 同期済み | たった今 | |
Asteraster.mdx | Projects | 下書きあり | たった今 | |
Treating OpenAPI as Astro Contentopenapi-as-astro-content.mdx | Blog | 同期済み | たった今 | |
One Component Layer, Two Astro Themesone-component-layer-two-themes.mdx | Blog | 下書きあり | たった今 | |
Defaults With an Exitdefaults-with-an-exit.mdx | Blog | 同期済み | たった今 |
一致するコンテンツはありません
エディターを読み込み中…
Markdown、MDX コンポーネント、frontmatter を編集できます。ビジュアルに切り替えると変更が適用されます。
変更を確認する
編集した内容と元のサンプルとの差分を確認できます。
元のサンプル編集後の内容
まだ変更はありません。サンプルを編集すると、ここに差分が表示されます。
Prosefly / astro-template-aster / Blog
公開内容を確認
公開前にコンテンツのプロパティと Git の変更を確認してください。
Git のベースバージョンと一致しています。公開できます。
記事を編集するか編集例を適用すると、差分が表示されます。
以下のファイルをまとめて公開します。ファイルを選ぶと変更内容を確認できます。
この下書きAster の公開記事ページの例です。Git への公開後、既存の Astro ビルドでサイトが更新されます。

先にエディターで MDX と frontmatter を確認してください。
今の設定を読み取り、確認して編集へ。
- 01
Astro のリポジトリを接続
GitHub を認証し、Astro アプリを含むリポジトリを接続します。モノレポ内のアプリにも対応しています。
- 02
検出されたコンテンツを確認
既存の設定から読み取ったアプリのルート、コンテンツディレクトリ、フィールド、エディタープロファイルを確認します。対応する定義なら、CMS 用の設定を追加せずにコンテンツスペースへ取り込めます。
- 03
ページを編集して公開
コレクションを開いて下書きを保存し、公開前に Git の差分を確認します。
接続前に知っておきたいこと
対応する静的な Content Collections、ディレクトリ全体を対象にする Markdown・MDX の glob ローダー、対応するスキーマの項目を自動検出します。リポジトリのコードや独自ローダーは実行しません。リモートコンテンツ、動的なスキーマ、一部のファイルだけを選ぶパターンでは、対象範囲の明示的な設定が必要になる場合があります。サイトのレイアウトや任意の Astro コンポーネントはコードで管理し、標準のドキュメントナビゲーションの編集は Starlight ガイドで紹介しています。
Astro で CMS を使うには
Aster テンプレートは必須ですか?
いいえ。Aster は手順を再現するための例です。既存の Astro リポジトリを接続し、設定から検出された対応コレクションとスキーマの項目を確認できます。
Astro サイトに何をインストールしますか?
対応する既存コレクションの接続に、Prosefly のランタイム、コンテンツ API、別の CMS スキーマは必要ありません。Aster 自体は MDX コンポーネントの表示に @prosefly/astro-components を使いますが、これは CMS の接続とは別のテンプレート依存関係です。
チーム全員が Git コマンドを使いますか?
管理者が GitHub の接続、コンテンツスペース、公開方法を設定します。執筆者は Git コマンドを使わずに、文書と対応する属性を編集し、下書きを保存できます。
独自の Astro・MDX コンポーネントも編集できますか?
対応する MDX コンポーネントにはビジュアル編集の操作があります。独自の MDX コンポーネントや未対応の式はソースで編集できます。Prosefly はコンポーネントのコードを実行せず、サイトの Astro レイアウトも編集しません。
編集内容を保存するとサイトも更新されますか?
保存すると Prosefly に下書きが作成されます。差分を確認して Git に公開し、必要な場合はプルリクエストをマージします。その後、既存の Astro ビルドとホスティングの処理がサイトを更新します。
公開したコンテンツは、自分の Git リポジトリに。
公開するまで、下書きは Prosefly に保存されます。変更を確認してコミットまたはプルリクエストを作成すると、ウェブサイトの既存のビルドがデプロイを引き継ぎます。
コンテンツの所有権についてさらに詳しく
コンテンツスペースの接続、公開の仕組み、ウェブサイトを支えるツールについて。
ほかのフレームワークを見る
サイト用フレームワーク
Hugo
Markdown、frontmatter、ページバンドルに対応する Git ベースの Hugo 向け CMS。
詳しく見る Hugo
ドキュメントツール
Starlight
コンポーネントのビジュアル編集、ページ属性、標準サイドバーに対応する Starlight 向け CMS。
詳しく見る Starlight
ドキュメントツール
Fumadocs
MDX の編集、ページ属性、標準の meta.json ナビゲーションに対応する Fumadocs 向け CMS。
詳しく見る Fumadocs
Astro のドキュメントテーマ
Lotus
Lotus ドキュメント向け Astro CMS。ページ属性と docsNav に対応。
詳しく見る Lotus
Astro のドキュメントテーマ
Dahlia
Dahlia ドキュメント向け Astro CMS。ページ属性と docsNav に対応。
詳しく見る Dahlia