環境変数
対応する環境変数を設定すると、コマンドラインからすべての設定値を上書きできます。多くのOSでは、環境変数名に使える文字が英数字または_に制限されるため、設定キーには通常のfoo.bar.bazと少し異なる書式が必要です。
設定にはMDBOOK_で始まる変数を使います。MDBOOK_接頭辞を除き、残りの文字列をkebab-caseへ変換してキーを作ります。二重のアンダースコア(__)は入れ子のキーを区切り、単独のアンダースコア(_)はハイフン(-)に置き換えます。
例:
MDBOOK_book->bookMDBOOK_BOOK->bookMDBOOK_BOOK__TITLE->book.titleMDBOOK_BOOK__TEXT_DIRECTION->book.text-direction
このため、環境変数MDBOOK_BOOK__TITLEを設定すると、book.tomlを変更せずに本のタイトルを上書きできます。
注:複雑な設定項目を指定しやすくするため、環境変数の値はまずJSONとして解析し、解析に失敗した場合は文字列として扱います。
つまり、必要なら次のようにして、本をビルドするときに本のすべてのメタデータを上書きできます。
$ export MDBOOK_BOOK='{"title": "My Awesome Book", "authors": ["Michael-F-Bryan"]}' $ mdbook build
後者の方法は、スクリプトやCIからmdbookを呼び出す場合に便利です。そのような状況では、ビルド前にbook.tomlを更新できないこともあります。