設定(Config)
コンテンツ、公開、プラグイン、テーマ、キャッシュの挙動を制御するRiebeckiteの設定オブジェクトです。ビルドが使う前に検証され、解決されます。
制御するもの
| 設定 | 目的 |
|---|---|
content.directory |
コンテンツを読み取る場所 |
content.filters.publishStrategy |
既定の公開戦略 |
plugins |
実行するプラグインとそのオプション |
theme |
テーマとそのオプション |
cache.enabled |
ビルドでキャッシュを使うか |
検証してから解決
生の設定は検証されたあと、ビルドが使う形に解決されます。失敗はコンテンツを処理する前に報告されるため、設定の誤りが出力を壊すことはありません。
解決パイプライン
設定はビルドが使う前に3つの段階を通ります(packages/core/src/config.ts)。
-
validateConfig— すべての必須フィールドが存在し、値が期待される型や列挙型に適合するかを確認します。コンテンツ処理を始める前にエラーを報告します。 -
resolveThemeConfig— テーマ設定を解決します。入力がRiebeckiteThemeの場合はname、config、styles、attributes、userCssを取り出します。素のThemeConfigの場合はそのまま使い、欠けているフィールドに既定値を適用します。結果は解決済みの設定のthemeキーにマージされます。 -
resolveConfig— すべてをまとめる最終的な解決段階です。次の処理を行います。- 生の
RiebeckiteConfigに対してvalidateConfigを呼び出す。 resolveThemeConfigを呼び出してテーマを解決する。resolvePluginsでプラグインを解決する。site、content、cache、themeの各フィールドに既定値を設定する。- パイプラインとコンテンツマネージャーが使う
ResolvedRiebeckiteConfigを生成する。
- 生の
解決済みの設定はビルド中に.riebeckite/に置かれ、site、content、theme、plugins、cacheのセクションを含みます。たとえばcacheセクションは既定でenabled: trueとなり、任意でカスタムのdirectoryも指定できます。themeセクションにはcolorMode、typography、articleLayout、tokens、attributesが含まれます。
RiebeckiteConfigインターフェース
設定の形はpackages/core/src/types/riebeckite_config.tsで定義されています。
export interface RiebeckiteConfig {
site: SiteConfig;
content?: {
directory?: string;
source?: ContentSource;
exclude?: string[];
filters?: {
publishStrategy?: PublishStrategy;
};
};
theme?: ThemeInput;
plugins?: PluginInput[];
cache?: {
enabled?: boolean;
directory?: string;
};
}
必須のトップレベルフィールドはsiteで、ほかのセクションはすべて任意です。SiteConfigはpackages/core/src/types/site_config.tsにあり、title、description、author、baseUrl、locale、twitterSite、defaultOgImage、feedを含みます。
解決済みの設定では、siteがtitle、description、author、baseUrl、locale、twitterSite、defaultOgImage、feedを含みます。contentはdirectory、source、exclude、filters.publishStrategyを含みます。themeは解決済みのカラーモード、タイポグラフィ、記事レイアウト、トークン、属性を含みます。pluginsは設定の一覧から解決され、cacheはenabledとdirectoryを含みます。