フロントマター
ページが受け付けるフロントマターフィールドをすべて解説します。すべて任意項目で、title、description、sidebar、SEO、search などが何を制御するのかをまとめています。
各ページでは以下のフロントマターを使用できます。すべてのフィールドは任意です。
title?string
ページのタイトル。
stringdescription?string
ページの概要。
stringtype?string
コンテンツの種類。blog / changelog はフィードを生成します。
stringdocdate?string
blog / changelog フィード用の公開日(ISO 形式または YAML の日付)。
stringauthors?string | string[] | object[]
blog / changelog コンテンツの投稿者。名前、または name と任意の avatar / url、その他の追加フィールドを持つオブジェクトを指定します。値はそのまま保持されます。
string | string[] | object[]slug?string
生成されるスラッグを上書きします。
stringdraft?boolean
本番ビルドから除外します。
booleanfalselastModified?string
ページの「最終更新日」を固定します(ISO 形式または YAML の日付)。git から取得した日付を上書きします。
stringサイドバー
sidebar:
label: Install
order: 2
icon: download
badge: New
hidden: false
SEO
seo:
title: Install Blume
description: Install Blume and scaffold your first project.
image: /og/install.png
canonical: https://acme.com/install
noindex: false
検索
search:
exclude: false
tags: [api]
変更履歴
変更履歴のエントリー(type: changelog)では、フィードや表示のメタデータをより充実させるために、任意の changelog オブジェクトを指定できます。
type: changelog
changelog:
version: 1.2.0
date: 2026-06-20
category: Features
date はここに書いてもトップレベルに書いても構いません。どちらも変更履歴の RSS フィードに反映されます。生成されるタイムラインページとフィードについては、変更履歴を参照してください。
カスタムキー
このリファレンスに記載されていないキーはビルドを失敗させるため、タイプミスを早期に検出できます。独自のメタデータを扱うプロジェクトでは、blume.config.ts の frontmatter.extend で追加のキーを許可できます。各キーはプロジェクト側が用意したスキーマで検証されます。
import { defineConfig } from "blume";
import { z } from "zod";
export default defineConfig({
frontmatter: {
extend: {
owner: z.string(),
reviewedAt: z.coerce.date().optional(),
},
},
});
---
title: Install
owner: "@sam"
reviewedAt: 2026-06-20
---
スキーマは Standard Schema インターフェース経由で受け付けられるため、Zod(プロジェクトがインストールしているバージョンを問わず)、Valibot、ArkType のいずれも利用できます。宣言されたキーはすべてのページで検証されます。存在しない場合も含めて検証されるため、必須スキーマにするとサイト全体でそのキーが強制されます。存在するページでのみ検証したい場合は .optional() を付けてください。それ以外のキーは引き続き厳密に検証され、組み込みフィールドを再宣言することはできません。
タイプ別のキー
RFC の status やインシデントレポートの severity のように、特定のコンテンツタイプでのみキーを必須にしたい場合は、代わりに content.types の下で、適用対象となるフロントマターの type をキーとして宣言します。
import { defineConfig } from "blume";
import { z } from "zod";
export default defineConfig({
content: {
types: {
rfc: {
frontmatter: {
domain: z.string(),
status: z.enum(["draft", "review", "enforced"]),
},
},
},
},
});
---
title: OpenAPI request schemas
type: rfc
domain: architecture
status: enforced
---
タイプ別のキーは extend と同じ検証ルールに従い、解決された type が一致するページに限定して適用されます。宣言が content.defaultType に対するものであれば、type を指定していないページも対象に含まれます。1 つのキーはサイト全体の宣言かタイプ別の宣言のどちらか一方にのみ属し、両方に属することはできません。また、別のタイプでのみ宣言されたキーはそれ以外の場所では未知のキーのままなので、通常のドキュメントページに紛れ込んだ status は依然としてビルドを失敗させます。
検証に失敗したページがあると blume build は失敗し、該当するファイルとキーを示す診断メッセージが表示されます。--no-strict を指定した場合はビルドが成功し、失敗したページは出力から除外されます。除外された件数はビルドのサマリーに報告されます。
スキーマはエディターや移行ツール向けに blume/schema からエクスポートされています。