Autogenerate stubs and SUMMARY.md in the unstable book Removes a speed bump in compiler development by autogenerating stubs for features in the unstable book. See #42454 for discussion. The PR contains three commits, separated in order to make review easy: * The first commit converts the tidy tool from a binary crate to a crate that contains both a library and a binary. In the second commit, we'll use the tidy library * The second and main commit introduces autogeneration of SUMMARY.md and feature stub files * The third commit turns off the tidy lint that checks for features without a stub, and removes the stub files. A separate commit due to the large number of files touched Members of the doc team who wish to document some features can either do this (where `$rustsrc` is the root of the rust repo git checkout): 1. cd to `$rustsrc/src/tools/unstable-book-gen` and then do `cargo run $rustsrc/src $rustsrc/src/doc/unstable-book` to put the stubs into the unstable book 2. cd to `$rustsrc` and run `git ls-files --others --exclude-standard` to list the newly added stubs 3. choose a file to edit, then `git add` it and `git commit` 4. afterwards, remove all changes by the tool by doing `git --reset hard` and `git clean -f` Or they can do this: 1. remove the comment marker in `src/tools/tidy/src/unstable_book.rs` line 122 2. run `./x.py test src/tools/tidy` to list the unstable features which only have stubs 3. revert the change in 1 3. document one of the chosen unstable features The changes done by this PR also allow for further development: * tidy obtains information about tracking issues. We can now forbid differing tracking issues between differing `#![unstable]` annotations. I haven't done this but plan to in a future PR * we now have a general framework for generating stuff for the unstable book at build time. Further changes can autogenerate a list of the API a given library feature exposes. The old way to simply click through the documentation after it has been uploaded to rust-lang.org works as well. r? @nagisa Fixes #42454 |
||
|---|---|---|
| .. | ||
| book@f746084b09 | ||
| nomicon@c0e8c56d76 | ||
| reference@876582e9d0 | ||
| rustdoc | ||
| unstable-book | ||
| complement-design-faq.md | ||
| complement-lang-faq.md | ||
| complement-project-faq.md | ||
| favicon.inc | ||
| footer.inc | ||
| full-toc.inc | ||
| grammar.md | ||
| guide-crates.md | ||
| guide-error-handling.md | ||
| guide-ffi.md | ||
| guide-macros.md | ||
| guide-ownership.md | ||
| guide-plugins.md | ||
| guide-pointers.md | ||
| guide-strings.md | ||
| guide-tasks.md | ||
| guide-testing.md | ||
| guide-unsafe.md | ||
| guide.md | ||
| index.md | ||
| intro.md | ||
| not_found.md | ||
| README.md | ||
| reference.md | ||
| rust.css | ||
| rust.md | ||
| rustc-ux-guidelines.md | ||
| rustdoc.md | ||
| tutorial.md | ||
| version_info.html.template | ||
Rust documentations
Building
To generate all the docs, follow the "Building Documentation" instructions in the README in the root of the repository. This will convert the distributed Markdown docs to HTML and generate HTML doc for the books, 'std' and 'extra' libraries.
To generate HTML documentation from one source file/crate, do something like:
rustdoc --output html-doc/ --output-format html ../src/libstd/path.rs
(This, of course, requires a working build of the rustdoc tool.)
Additional notes
To generate an HTML version of a doc from Markdown manually, you can do something like:
rustdoc reference.md
(reference.md being the Rust Reference Manual.)
An overview of how to use the rustdoc command is available in the docs.
Further details are available from the command line by with rustdoc --help.