环境变量

通过设置相应的环境变量,可以从命令行覆盖所有配置值。 由于许多操作系统将环境变量限制为字母数字字符或 _,因此配置键的格式需要与正常的 foo.bar.baz 格式略有不同。

MDBOOK_ 开头的变量用于配置。 密钥是通过删除 MDBOOK_ 前缀并将结果字符串转换为 kebab-case 来创建的。 双下划线 (__) 分隔为嵌套键(.),而单个下划线 (_) 则替换为破折号 (-)。

例子:

  • MDBOOK_foo -> foo
  • MDBOOK_FOO -> foo
  • MDBOOK_FOO__BAR -> foo.bar
  • MDBOOK_FOO_BAR -> foo-bar
  • MDBOOK_FOO_bar__baz -> foo-bar.baz

因此,通过设置 MDBOOK_BOOK__TITLE 环境变量,您可以覆盖书名而无需修改您的 book.toml

备注: 为了方便设置更复杂的配置项,环境变量的值首先被解析为 JSON,如果解析失败则回退到字符串。

这意味着,如果您愿意,您可以在构建书籍时覆盖所有书籍元数据,例如

$ export MDBOOK_BOOK="{'title': 'My Awesome Book', authors: ['Michael-F-Bryan']}"
$ mdbook build

后一种情况在从脚本或 CI 调用 mdbook 的情况下可能很有用,适用情况为,有时无法在构建之前更新 book.toml