日本語|English

プラグインオプション(Plugin options)

VFMはプラグインのオプションをvalibotスキーマとして宣言し、スキーマとそこから推論したTypeScript型をexportしています。型推論と実行時検証を単一の情報源で両立します。

StringifyMarkdownOptionsSchemastringify / VFM APIのオプション全体を検証します。

import { StringifyMarkdownOptionsSchema } from '@vivliostyle/vfm';
import * as v from 'valibot';

const options = v.parse(StringifyMarkdownOptionsSchema, userInput);

スキーマは v.intersect で構成されており、プラグインごとのサブスキーマも個別にexportされているため、下流のツール(例: Vivliostyle CLI)は必要なものだけ再利用できます。exportされた各スキーマには、Schema 接尾辞を除いた同名の推論型があります(例: FigureOptionsSchemaFigureOptions)。

スキーマ 説明
StringifyMarkdownOptionsSchema stringify / VFM のオプション全体(editPluginsreplace を含む)。
SerializablePluginOptionsSchema シリアライズ可能なデータとして表現できるプラグインオプション。プログラムからの入力とYAMLフロントマターの共通コア。
VFMSettingsSchema YAMLフロントマターの vfm: フィールド。
LineBreaksOptionsSchema hardLineBreaks
MathOptionsSchema / MathRendererSchema mathmathRenderer
DocumentSerializableOptionsSchema partial
FormatOptionsSchema disableFormatHtml
CodeOptionsSchema コードブロックのキャプション向け assignIdToFigcaption
FigureOptionsSchema / ImgFigcaptionOrderSchema / CaptionlessImagePolicySchema imgFigcaptionOrderassignIdToFigcaptioncaptionlessImagePolicy
FigcaptionInlineOptionsSchema parseFigcaptionAsInline
FootnoteOptionsSchema / FootnoteModeSchema / YamlFootnoteOptionsSchema footnoteYaml 版はカスタマイズ用フィールドをYAMLで表現できる値に制限する。
ReplaceOptionsSchema / ReplaceRuleSchema replace フックのルール。
RewriteRelativeHrefExtensionsOptionsSchema rewriteRelativeHrefExtensions
TableOptionsSchema / TableCellPresetSchema / YamlTableOptionsSchema tableYaml 版は文字列プリセットのみ受け付ける。

各スキーマのフィールドは v.description(...) を持つため、オプションのドキュメントをスキーマから機械的に生成できます。