#line #doctest #rustdoc #documentation #hiding #dedicated #source

doctest-file

从专用文件中提取doctests到Rustdoc文档的过程宏,支持隐藏行

1个稳定版本

1.0.0 2024年5月17日

#1423过程宏

Download history 100/week @ 2024-05-13 457/week @ 2024-05-20 1834/week @ 2024-05-27 2205/week @ 2024-06-03 3611/week @ 2024-06-10 4630/week @ 2024-06-17 6544/week @ 2024-06-24 6026/week @ 2024-07-01 7271/week @ 2024-07-08 8383/week @ 2024-07-15 8751/week @ 2024-07-22 8752/week @ 2024-07-29

33,657 每月下载量
20 个crates中使用(通过 interprocess

0BSD 许可证

11KB
232 代码行

从专用文件中提取doctests到Rustdoc文档的过程宏,支持隐藏行。

示例用法

/// ```
#[doc = doctest_file::include_doctest!("examples/foo.rs")]
/// ```

include_str!()不同,include_doctest!()允许您隐藏某些行,就像使用#语法进行带内doctests一样。不过,您无需在每个要隐藏的行前都加上#前缀,而是可以加上//后缀。空行尾注释不会使.rs文件格式不正确,因此在编写doctests并放入examples/目录时,您可以获得丰富的编辑器支持。请注意,检测此后缀时忽略空白。

在底层,//后缀被简单地转换为#前缀,然后由Rustdoc进行解释。

也可以隐藏行块——这有助于绕过Rustfmt的不灵活的格式化选择。使用//{开始隐藏块,如果该行除了标记之外没有其他内容(除了空白),则只包括该行。使用//}结束隐藏块,无条件地隐藏该行。

当在单独的文件中存储doctests时,另一个有用的功能是自动缩进:宏会减少可见行的缩进,使得最少的可见缩进行看起来完全未缩进。这意味着您无需修改Rustfmt强制执行的缩进规则,就可以在Rustdoc中正确显示doctests。

此外,删除文件末尾的空行,也有助于与Rustfmt的互操作性。

这个包没有任何依赖:没有 proc_macro2,没有 syn,没有 quote。它也非常简单,代码行数不到200行。

许可证

doctest-file 在0条款BSD许可证下授权,这意味着不可能违反许可条款。这在功能上等同于公共领域,但在德国等国家也是合法的。

没有运行时依赖