Astro v5 Content Layer API の使い方 - 1. globローダー
Astro v5になって導入されたContent Layer APIの使い方シリーズその1です。
まずはAstro公式からデフォルトで提供されている glob ローダーを紹介します。
従来Astroではmarkdownファイルを自動で読み込んでいましたが、globローダーはこの処理をContentLayerAPI対応にしたものです。
v4からの変更点は content collection で type ではなく loader というオプションを使い、loader で glob ローダーを呼ぶだけです。
import { defineCollection, z } from 'astro:content';import { glob } from 'astro/loaders';
const posts = defineCollection({  //type: 'content', // v4まで  loader: glob({pattern: '**/*.md', base: './src/blog'}), // v5以降  schema: z.object({    title: z.string(),  })})globローダーの引数には対象ファイルのパターン(pattern)と、ファイルのある場所のディレクトリ(base)をそれぞれ渡します。
複数のファイルパターンを指定する場合は pattern: ['**/*.md', '**/*.mdx'] のように配列で渡します。
デフォルトで提供されているローダーは globとfile の2つがあり、globローダーを複数のファイルをまとめて読み込むのに使い、 file ローダーを単独ファイルの読み込みに使います。
以上が Content Layer API のデフォルトローダーの紹介でした。
次回はサードパーティローダーを紹介します。