実行環境(Runtime)
ビルド後に、サイトがページを配信しクエリに答える段階です。実行環境のコードはコンテンツを再処理せず、マニフェストとページデータを読みます。
実行環境とビルド時
| 段階 | 行うこと |
|---|---|
| ビルド時 | コンテンツを処理し、公開先を解決し、出力を書き出す |
| 実行環境 | ページを配信し、クエリに答える |
実行環境が読むもの
実行環境はマニフェストと用意済みのページデータを読みます。Markdownを再パースしないため、コンテンツを解釈する場所はビルドだけに保たれます。
実行環境とビルド時の詳細
ビルド時と実行環境の分離は、Riebeckiteの中心的な設計原則です。
| 段階 | 行うこと |
|---|---|
| ビルド時 | コンテンツを処理し、公開先を解決し、出力を書き出し、マニフェストとページデータを生成する |
| 実行環境 | ページを配信し、クエリに答え、再処理せずにマニフェストとページデータを読む |
実行時、サイトは .riebeckite/ ディレクトリに保存された解決済みのマニフェストとページデータを読みます。実行環境はMarkdownの再パース、l10nの言語検出、公開戦略の再解決を行いません。つまり次の状態です。
- ページHTMLはすでに描画され、キャッシュされている
- 多言語化(
langfrontmatter、hreflangリンク)はすでに適用されている - 公開戦略のフィルタはすでに適用されている
- 検索インデックスはすでに構築されている
実行環境のコードは通常、HonoXのようなホストフレームワークで動き、マニフェストを読んで、どのページを配信するか、どのheadタグを含めるかを決めます。この分離により、コンテンツの解釈はビルドだけが担い、実行環境は配信に専念します。
// Example: runtime reads manifest to determine page
const manifest = require("./.riebeckite/manifest.json");
const page = manifest.pages[requestedPath];