コンテンツにスキップ
Blume is now publicly available.
Blume
日本語
Esc
移動開く⌘Jプレビュー
このページの内容

フロントマター

ページが受け付けるフロントマターフィールドをすべて解説します。すべて任意項目で、title、description、sidebar、SEO、search などが何を制御するのかをまとめています。

各ページでは以下のフロントマターを使用できます。すべてのフィールドは任意です。

PropType
title?string

ページのタイトル。

Typestring
description?string

ページの概要。

Typestring
type?string

コンテンツの種類。blog / changelog はフィードを生成します。

Typestring
Defaultdoc
date?string

blog / changelog フィード用の公開日(ISO 形式または YAML の日付)。

Typestring
authors?string | string[] | object[]

blog / changelog コンテンツの投稿者。名前、または name と任意の avatar / url、その他の追加フィールドを持つオブジェクトを指定します。値はそのまま保持されます。

Typestring | string[] | object[]
slug?string

生成されるスラッグを上書きします。

Typestring
draft?boolean

本番ビルドから除外します。

Typeboolean
Defaultfalse
lastModified?string

ページの「最終更新日」を固定します(ISO 形式または YAML の日付)。git から取得した日付を上書きします。

Typestring

サイドバー

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.tsfrontmatter.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 からエクスポートされています。

このページは役に立ちましたか?