#nix #mdbook #nixos

bin+lib mdbook-nix-eval

一个用于评估 nix 表达式的简单 mdbook 预处理器

2 个稳定版本

1.0.1 2021 年 3 月 6 日
1.0.0 2021 年 3 月 5 日

1120文本处理

MPL-2.0 许可证

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