フロントマター設定
フロントマターは、Markdownファイルの先頭にYAML形式で記述する、フォーム全体に適用される設定です。このページでは、使用可能なすべてのフロントマター設定について詳しく説明します。
基本的な使い方
フロントマターは、Markdownファイルの先頭で --- で囲んで記述します:
---
collectEmail: true
allowMultipleResponses: false
showProgressBar: true
---
# フォームタイトル
フォームの内容...設定項目一覧
collectEmail
説明: フォーム回答時にメールアドレスを収集するかどうかを設定します。
型: boolean
デフォルト値: false
---
collectEmail: true
---この設定を true にすると:
- 回答者にメールアドレス入力が要求されます
- 回答の管理や追跡が容易になります
- フォローアップのメール送信が可能になります
allowMultipleResponses
説明: 同一ユーザーからの複数回答を許可するかどうかを設定します。
型: boolean
デフォルト値: true
---
allowMultipleResponses: false
---設定値の意味:
true: 同じユーザーが何度でも回答できますfalse: ユーザーは1回のみ回答可能です
limitResponses
説明: フォーム全体の回答数上限を設定します。
型: number | null
デフォルト値: null(制限なし)
---
limitResponses: 100
---設定例:
100: 100件の回答で受付終了nullまたは設定なし: 回答数に制限なし
showProgressBar
説明: 複数ページのフォームでプログレスバーを表示するかどうかを設定します。
型: boolean
デフォルト値: false
---
showProgressBar: true
---この設定を true にすると:
- フォームの進捗状況が視覚的に表示されます
- ユーザーが完了までの目安を把握できます
- ユーザーエクスペリエンスが向上します
shuffleQuestions
説明: 質問の順序をランダムに変更するかどうかを設定します。
型: boolean
デフォルト値: false
---
shuffleQuestions: true
---使用場面:
- アンケート調査でバイアスを減らしたい場合
- 質問の順序効果を排除したい場合
- A/Bテストを実施する場合
responseReceipt
説明: 回答完了時の受領通知設定を指定します。
型: "always" | "never" | "whenRequested"
デフォルト値: "whenRequested"
---
responseReceipt: always
---設定値の意味:
"always": 常に受領通知を送信"never": 受領通知を送信しない"whenRequested": ユーザーが希望した場合のみ送信
テーマ設定
フォームの外観をカスタマイズする設定です。
themeColor
説明: フォームのメインカラーを設定します。
型: string
デフォルト値: システムデフォルト
---
themeColor: blue
themeColor: "#3B82F6"
themeColor: "rgb(59, 130, 246)"
---指定可能な値:
- カラーネーム:
blue,red,green,purpleなど - HEXコード:
#3B82F6,#EF4444など - RGB値:
rgb(59, 130, 246)など
backgroundImage
説明: フォームの背景画像を設定します。
型: string
デフォルト値: なし
---
backgroundImage: mountain
backgroundImage: "https://example.com/background.jpg"
---指定方法:
- プリセット名:
mountain,ocean,forest,cityなど - URL: 画像ファイルの直接URL
- 相対パス: ローカル画像ファイルへのパス
font
説明: フォームで使用するフォントファミリーを設定します。
型: string
デフォルト値: システムデフォルト
---
font: "Noto Sans JP"
font: "Arial, sans-serif"
---完全な設定例
以下は、すべての設定を含む完全な例です:
---
# 回答収集設定
collectEmail: true
allowMultipleResponses: false
limitResponses: 500
# UI/UX設定
showProgressBar: true
shuffleQuestions: false
# 通知設定
responseReceipt: whenRequested
# テーマ設定
themeColor: "#2563EB"
backgroundImage: mountain
font: "Noto Sans JP, sans-serif"
---実用的な設定パターン
パターン1: 一般的なアンケート
---
collectEmail: true
allowMultipleResponses: false
showProgressBar: true
responseReceipt: whenRequested
themeColor: blue
---- メールアドレスを収集
- 重複回答を防止
- 進捗を表示
- 受領通知は希望者のみ
パターン2: 継続的な調査
---
collectEmail: false
allowMultipleResponses: true
showProgressBar: false
shuffleQuestions: true
responseReceipt: never
---- 匿名での回答
- 複数回答を許可
- 質問順をランダム化
- 通知は送信しない
パターン3: 限定的な募集フォーム
---
collectEmail: true
allowMultipleResponses: false
limitResponses: 100
showProgressBar: true
responseReceipt: always
themeColor: "#DC2626"
---- メールアドレス必須
- 100件で締切
- 常に受領通知を送信
- 赤色テーマで緊急感を演出
パターン4: 企業ブランディング重視
---
collectEmail: true
allowMultipleResponses: false
showProgressBar: true
responseReceipt: whenRequested
themeColor: "#1F2937"
backgroundImage: "https://company.com/bg.jpg"
font: "Corporate Font, Arial, sans-serif"
---- 企業カラーを使用
- カスタム背景とフォント
- ブランドイメージを統一
設定の適用優先順位
- フロントマター設定 - 最高優先度
- デフォルト値 - フロントマターで指定されていない項目
設定時の注意点
1. YAML記法の遵守
# ❌ 間違い
---
collectEmail = true
showProgressBar: "true"
---
# ✅ 正しい
---
collectEmail: true
showProgressBar: true
---2. 真偽値の指定
# ❌ 間違い
allowMultipleResponses: "false"
showProgressBar: 0
# ✅ 正しい
allowMultipleResponses: false
showProgressBar: true3. 文字列のクォート
特殊文字や空白を含む文字列はクォートで囲みます:
# 基本的な文字列
themeColor: blue
# 特殊文字を含む場合
font: "Noto Sans JP, sans-serif"
backgroundImage: "https://example.com/image with spaces.jpg"4. 設定値の妥当性
無効な設定値は無視されます:
---
responseReceipt: invalid_value # 無視される
limitResponses: -1 # 無視される(負の値は無効)
themeColor: "invalid_color" # 無視される
---TypeScript型定義
フロントマター設定は以下の型で定義されています:
type FormSettings = {
collectEmail?: boolean
allowMultipleResponses?: boolean
limitResponses?: number | null
showProgressBar?: boolean
shuffleQuestions?: boolean
themeColor?: string
backgroundImage?: string
font?: string
responseReceipt?: "always" | "never" | "whenRequested"
}動的な設定変更
フロントマター設定はパース時に決定されるため、フォーム表示中の動的変更はサポートされていません。設定を変更する場合は、Markdownファイルを更新して再度パースしてください。
デバッグとトラブルシューティング
設定が反映されない場合
- YAML記法を確認 - インデントや記法が正しいか
- 設定値の妥当性 - 指定した値が有効範囲内か
- 型の一致 - boolean、number、stringが正しく指定されているか
よくあるエラー
# ❌ YAMLパースエラーの原因
---
collectEmail: true
showProgressBar true # コロンが抜けている
---
# ❌ 無効な設定値
---
responseReceipt: sometimes # 無効な列挙値
---
# ❌ 型の不一致
---
limitResponses: "100" # 文字列ではなく数値で指定すべき
---次のステップ
フロントマター設定を理解したら、以下のページでより詳細な情報を確認してください:
- 実装例 - 実際の使用例とベストプラクティス
- 型定義 - TypeScript型定義の詳細
- API リファレンス - パース結果の取得方法