コンテンツコレクション(Content Collection)
クエリ用に作られるコンテンツエントリのまとまりで、タグ、フォルダー、日付、frontmatterのフィールドなどの種類で定義します。タクソノミーページ、アーカイブ、シリーズの一覧はコレクションから作られます。
種類
コレクションは1つの軸でエントリを選びます。
tags— 同じタグを持つエントリ。folder— あるディレクトリ配下のエントリ。date— 年、月、日でまとめたエントリ。- frontmatterのフィールド — 同じ値を持つエントリ。シリーズで使われる形です。
エントリの選び方
{
kind: "tags",
filter: (entry) => entry.frontmatter.published !== false,
sort: "date",
order: "desc",
}
コンテンツコレクションの定義
ContentCollectionはContentCollectionDefinitionで定義し、kindと任意のfilter、sort、orderを指定します。buildContentCollections関数(packages/core/src/content/content_collection.ts)がマニフェストのエントリをタクソノミー・日付・フォルダーベースの一覧にまとめ、ページネーション、並べ替え、フィルターに対応します。
ContentCollectionDefinitionの例:
{
kind: "tags",
}
フィルターと並べ替えを付けた例:
{
kind: "date",
filter: (entry) => entry.frontmatter.published !== false,
sort: "date",
order: "desc",
}
利用できる種類:
tags— 同じタグを持つエントリfolder— あるディレクトリ配下のエントリdate— 年、月、日でまとめたエントリ- frontmatterのフィールド — 同じ値を持つエントリ。シリーズで使われる形です。