環境變數
所有組態值都可以從命令行透過設定對應的環境變數來覆蓋。由於許多作業系統限制環境變數僅能包含英數字元或底線(_),因此需將組態鍵稍微格式化為不同於普通的 foo.bar.baz 形式。
使用以 MDBOOK_ 開頭的變數進行組態。鍵(key)的建立方式是移除 MDBOOK_ 前綴,並將剩餘的字串轉換為 kebab-case。雙底線(__)用於分隔嵌套的鍵,而單底線(_)則會被替換為短橫線 (-)。
例如:
MDBOOK_book->bookMDBOOK_BOOK->bookMDBOOK_BOOK__TITLE->book.titleMDBOOK_BOOK__TEXT_DIRECTION->book.text-direction
因此,透過設定 MDBOOK_BOOK__TITLE 環境變數而無需修改您的 book.toml,就可以覆蓋手冊的題名。
Note: To facilitate setting more complex config items, the value of an environment variable is first parsed as JSON, falling back to a string if the parse fails.
這代表如果您有需要,可以在建置手冊時透過類似以下的方式覆蓋所有手冊的元資料
$ export MDBOOK_BOOK='{"title": "My Awesome Book", "authors": ["Michael-F-Bryan"]}' $ mdbook build
The latter case may be useful in situations where mdbook is invoked from a script or CI, where it sometimes isn’t possible to update the book.toml before building.