2 个稳定版本
1.0.1 | 2021 年 3 月 6 日 |
---|---|
1.0.0 | 2021 年 3 月 5 日 |
1120 在 文本处理 中
24KB
225 代码行
mdbook-nix-eval
这是一个用于评估包含 nix 表达式的代码块的 mdbook 预处理器。
带有 nix 语言提示的代码块将被评估,并将原始表达式和结果(或 stderr 输出)返回以包含在输出文档中。
```nix
builtins.langVersion
```
具有类似文件名语言提示的 Conde 块将按上述方式评估,但也会写入每个章节的临时目录中,以便稍后引用该文件。
```test-file.nix
builtins.langVersion
```
安装
如果您只想使用此预处理器,请安装此工具
cargo install mdbook-nix-eval
将其添加到您的 book.toml
中的预处理器
[preprocessor.nix-eval]
command = "mdbook-nix-eval"
renderer = ["html"]
#eval_args = "--timeout 5"
最后,按正常方式构建您的书籍
mdbook path/to/book
警告
- 如果 nix-builder 启用了沙箱,那么对敏感信息的访问应该有限,但...最好只运行受信任的表达式。
- 在某些情况下(大多数情况下?),nix 沙箱允许网络访问(如果可用且启用),因此再次建议只运行受信任的表达式。
- nix-instantiate 使用 --strict 运行,手册页说“警告:此选项可能导致非终止,因为惰性数据结构可以无限大。”如果没有该标志,错误消息如
error: 无法将 thunk 转换为 JSON
更常见。 - 除了 nix 内部对确定输出所做的操作外,没有其他操作,因此如果使用
mdbook serve
,则较短的章节更好,因为每个块都会调用 nix。
许可证
MPL。请参阅 LICENSE。版权所有 (c) 2021 Jason R. McNeil [email protected]
依赖项
~12–23MB
~327K SLoC