什么是 rustdoc? |
您所在的位置:网站首页 › crate翻译中文 › 什么是 rustdoc? |
什么是 rustdoc?
中文翻译注(The Chinese translation of The rustdoc Book): 👉 查看更多 Rust 官方文档中英文双语教程,包括双语版《Rust 程序设计语言》(出版书名为《Rust 权威指南》),本站还提供了 Rust 标准库中文版。 《rustdoc 手册》(rustdoc Book 中文版)翻译自 rustdoc Book,内容已全部翻译完成,查看此书的 Github 翻译项目和源码。 本文版最后更新时间:2022-02-04。 本书主要译者:David,Rust 中文翻译项目组 成员。 本站支持文档中英文切换,点击页面右上角语言图标可切换到相同章节的英文页面,英文版每天都会自动同步一次官方的最新版本。 若发现当前页表达错误或帮助我们改进翻译,可点击右上角的编辑按钮打开该页对应源码文件进行编辑和修改,Rust 中文资源的开源组织发展离不开大家,感谢您的支持和帮助!标准 Rust 版本包含了名为 rustdoc 的工具。它的作用是为 Rust 项目生成文档,Rustdoc 接受一个 crate 根目录或者一个 markdown 文件作为参数,生成 HTML,CSS 和 JavaScript 文件。 基本使用让我们试用一下,使用 Cargo 创建一个新项目 $ cargo new docs --lib $ cd docs在 src/lib.rs 中,Cargo 生成了一些示例代码,将其删除并替换为下面的代码: #![allow(unused)] fn main() { /// foo is a function fn foo() {} }然后我们运行 rustdoc。我们可以在 crate 根路径执行下面的命令: $ rustdoc src/lib.rs这会创建一个新目录 doc,其中包含一个网站。在我们的例子中,主页面是 doc/lib/index.html。如果你使用浏览器打开,可以看到一个带有搜索栏的页面,在顶部可以看到“Crate lib”,页面没有内容。 配置 rustdoc现在有两个问题:第一,为什么我们的包名字是“lib”?第二,为什么没有任何内容? 第一个问题的原因是因为 rustdoc 试图更好用,像 rustc 就假定我们 crate 的名字就是 crate 根目录文件的名字。为了修复这个问题,可以通过命令行传递参数: $ rustdoc src/lib.rs --crate-name docs现在,doc/docs/index.html 文件生成,页面名称为“Crate docs”。 对于第二个问题,因为我们的函数 foo 不是公共的;rustdoc 默认只会为公共函数生成文档,如果我们将代码修改为 #![allow(unused)] fn main() { /// foo is a function pub fn foo() {} }然后重新运行 rustdoc: $ rustdoc src/lib.rs --crate-name docs现在我们生成了文档,打开 doc/docs/index.html,显示了 foo 函数的连接页面,文件位置是 doc/docs/fn.foo.html。在函数的页面上,你可以看到我们写的注释“foo is a function”。 通过 Cargo 使用 rustdocCargo 整合了 rustdoc,使得生成文档更容易。代替 rustdoc 命令,我们可以这样做: $ cargo doc实际上,会这样调用 rustdoc: $ rustdoc --crate-name docs src/lib.rs -o /docs/target/doc -L dependency=/docs/target/debug/deps你可以使用 cargo doc --verbose 看到这个过程。 它会自动生成正确的 crate 名称 --crate-name,同时指向 src/lib.rs。但是其他的参数表示什么呢? -o 控制文档的输出。不使用顶层的 doc 目录,Cargo 会把生成的文档生成在 target。这是 Cargo 项目的惯用生成文件的位置。 -L 帮助 rustdoc 找到代码的依赖,如果我们的项目有依赖,也会生成依赖的文档。 Outer 和 inner 文档/// 语法用来对下面一个 item 生成文档,所以称为 outer 文档。还有语法//!,用来生成 item 内部的文档,也叫做 inner 文档,通常用来对整个 crate 生成文档,因为是 crate 的根,没有 item 在前面。所以为了生成整个 crate 的文档,你需要这样用 //!: #![allow(unused)] fn main() { //! This is my first rust crate }当这样用的时候,会生成 item 内部的文档,也就是 crate 自己。 为了获取更多 //! 的信息,请看 the Book 利用单独的 Markdown 文件rustdoc 可以为单独的 markdown 文件生成 HTML。让我们尝试一下,创建 README.md,并输入如下内容: # Docs This is a project to test out `rustdoc`. [Here is a link!](https://www.rust-lang.org) ## Example ```rust fn foo() -> i32 { 1 + 1 } ```然后运行 rustdoc 命令: $ rustdoc README.md你能发现生成的 docs/doc/README.html 文件。 不过现在 Cargo 不能这样操作 markdown 文件。 总结本节涵盖了 rustdoc 的基本使用方法。本书的剩余部分会展示 rustdoc 所有的可选功能,以及如何使用它们。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |