10 个版本 (2 个稳定版)
1.1.0 | 2021 年 1 月 13 日 |
---|---|
1.0.0 | 2020 年 4 月 26 日 |
0.2.1 | 2019 年 8 月 7 日 |
0.2.0 | 2019 年 5 月 19 日 |
0.1.1 | 2019 年 2 月 25 日 |
#283 在 Cargo 插件 中
每月 37 次下载
用于 2 个 包
68KB
1.5K SLoC
cargosync-readme
一个插件,根据您的 Rust 文档在 README 中生成 Markdown 部分。
它是如何工作的?
基本上,这个工具提供了一个简单的机制,将您的首页文档从 lib.rs
或 main.rs
同步到 readme 文件中的指定位置。为此,该命令将解析 lib.rs
或 main.rs
中的内部文档(即 //!
),并在 readme 文件中的特定标记处输出。
标记
由于您可能需要一个在 Rust 代码文档中添加更多信息的特定 readme 文件,此工具允许您选择放置文档的位置。这通过三个标记来完成
<!-- cargo-sync-readme -->
:该注释必须放置在您想包含和同步 Rust 文档的 readme 文件位置。<!-- cargo-sync-readme start -->
:该注释由命令自动插入,以界定同步文档的开始。<!-- cargo-sync-readme end -->
:此注释由命令自动插入,用于界定同步文档的结束。
您只需使用前面的标记(即 <!-- cargo-sync-readme -->
)。其余标记将由工具自动为您处理。
好的,但现在我想改变文档的位置。
当您已经将同步文档放入您的 readme 文件中,但想更改其位置时,您只需删除起始和结束注释(包括注释)之间的所有内容,然后将 <!-- cargo-sync-readme -->
注释放置在您想要同步文档出现的地方。
我该如何使用它?
首先,此工具将尊重您在 Cargo.toml
中放入的内容。有一个特殊的字段称为 readme
,它给出了您想要用作 readme 文件的文档的名称/路径。 cargo sync-readme
将操作该文件。
免责声明:尽管crates.io的文档和清单格式没有明确说明此文件类型,但
cargo sync-readme
假设它是Markdown。如果您需要支持其他文件类型,请提交一个issue或PR:这些都非常受欢迎——如果您住在巴黎,我提供给您Kwak或Chouffe!♥
一旦您在 readme 文件中放入注释,只需运行不带参数的命令以执行同步
cargo sync-readme
这将有效地更新您的 readme 文件,使用Rust代码的主要文档(根据您的crate类型,可以是 lib.rs
或 main.rs
)。
内链支持
此工具重写内链,使其指向docs.rs中对应的位置。内链必须具有以下形式 [⋯](crate::⋯)
。
也支持到标准库的链接,其形式必须为 [⋯](<crate>::⋯)
,其中 <crate>
是标准库的一部分的crate,例如 std
、core
或 alloc
。
请注意,内部链接支持存在一些限制。要创建链接,我们必须解析源代码以找出所引用符号的类别(例如是否是 struct
,trait
等)。这必然带来一些限制,例如,我们不会展开宏,因此宏中定义的符号将无法链接。
开关和选项
此命令有多个选项和标志,您可以使用它们来定制体验(有点像迪士尼乐园的体验,但不如那么激动人心)。
-z
或--show-hidden-doc
:此标志将在将文档复制到您在 readme 中选择的区域时禁用一种特殊转换。默认情况下,所有忽略的/隐藏的行(Rust 文档中的代码块开头的以破折号开始的行)将被简单地删除。如果您希望 readme 文档看起来像 docs.rs 上的文档,其中隐藏的行不会显示,则可能需要这样做。如果不这样做,请使用此标志来禁用此行为。-f
或--prefer-doc-from
:此选项允许您覆盖获取文档的位置。可能需要覆盖从 Cargo.toml 清单中读取的默认行为、基于文件的自动检测或当您同时设置了二进制和库(在这种情况下此选项是强制性的)时。--crlf
:此标志使工具的新行行为符合 CRLF。它不会更改已经存在的换行符,但期望您的文档使用 CRLF 格式化。如果不是这样,那么您将受到骑摩托车松鼠的攻击。抱歉。此外,它将以 CRLF 生成换行符。-c --check
:检查 readme 是否同步。
问答和故障排除
是否支持工作区 crate?
尚未!如果您有关于工具如何处理它们的想法,请通过问题或 PR 贡献。
依赖关系
~4.5–6.5MB
~122K SLoC