Skip to content

Commit 863555f

Browse files
committed
rustdoc: Update the man page
Closes #9622
1 parent e523f99 commit 863555f

File tree

2 files changed

+60
-24
lines changed

2 files changed

+60
-24
lines changed

man/rustdoc.1

+56-21
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,84 @@
33
rustdoc \- generate documentation from Rust source code
44
.SH SYNOPSIS
55
.B rustdoc
6-
[\fIOPTIONS\fR] \fICRATEFILE\fR
6+
[\fIOPTIONS\fR] \fIINPUT\fR
77

88
.SH DESCRIPTION
99
This tool generates API reference documentation by extracting comments from
10-
source code written in the Rust language, available at <\fBhttps://www.rust-
11-
lang.org\fR>. It provides several output formats for the generated
12-
documentation.
10+
source code written in the Rust language, available at
11+
<\fBhttps://www.rust-lang.org\fR>. It accepts several input formats and provides
12+
several output formats for the generated documentation.
1313

14-
.SH COMMANDS
14+
.SH OPTIONS
1515

1616
.TP
17-
--output-dir <val>
18-
Put documents here (default: .)
17+
-r --input-format <val>
18+
html or json (default: inferred)
1919
.TP
20-
--output-format <val>
21-
markdown or html (default: html)
20+
-w --output-format <val>
21+
html or json (default: html)
2222
.TP
23-
--output-style <val>
24-
doc-per-crate or doc-per-mod (default: doc-per-mod)
23+
-o --output <val>
24+
where to place the output (default: doc/ for html, doc.json for json)
2525
.TP
26-
--pandoc-cmd <val>
27-
Command for running pandoc
26+
--passes <val>
27+
space-separated list of passes to run (default: '')
28+
.TP
29+
--no-defaults
30+
don't run the default passes
31+
.TP
32+
--plugins <val>
33+
space-separated list of plugins to run (default: '')
34+
.TP
35+
--plugin-path <val>
36+
directory to load plugins from (default: /tmp/rustdoc_ng/plugins)
37+
.TP
38+
-L --library-path <val>
39+
directory to add to crate search path
2840
.TP
2941
-h, --help
3042
Print help
3143

3244
.SH "OUTPUT FORMATS"
3345

34-
The rustdoc tool can generate documentation in either the Markdown
35-
or HTML formats. It requires the pandoc tool
36-
<\fBhttp://johnmacfarlane.net/pandoc/\fR> for conversion features.
46+
The rustdoc tool can generate output in either an HTML or JSON format.
47+
48+
If using an HTML format, then the specified output destination will be the root
49+
directory of an HTML structure for all the documentation. Pages will be placed
50+
into this directory, and source files will also possibly be rendered into it as
51+
well.
52+
53+
If using a JSON format, then the specified output destination will have the
54+
rustdoc output serialized as JSON into it. This output format exists to
55+
pre-compile documentation for crates, and for usage in non-rustdoc tools. The
56+
JSON output is the following hash:
57+
58+
{
59+
"schema": VERSION,
60+
"crate": ...,
61+
"plugins": ...,
62+
}
63+
64+
The schema version indicates what the structure of crate/plugins will look
65+
like. Within a schema version the structure will remain the same. The `crate`
66+
field will contain all relevant documentation for the source being documented,
67+
and the `plugins` field will contain the output of the plugins run over the
68+
crate.
3769

3870
.SH "EXAMPLES"
3971

4072
To generate documentation for the source in the current directory:
4173
$ rustdoc hello.rs
4274

43-
To build documentation into a subdirectory named 'doc' in the Markdown
44-
format:
45-
$ rustdoc --output-dir doc --output-format markdown hello.rs
75+
List all available passes that rustdoc has, along with default passes:
76+
$ rustdoc --passes list
77+
78+
To precompile the documentation for a crate, and then use it to render html at
79+
a later date:
80+
$ rustdoc -w json hello.rs
81+
$ rustdoc doc.json
4682

47-
The generated HTML can be viewed with any standard web browser, while
48-
the Markdown version is well-suited for conversion into other formats.
83+
The generated HTML can be viewed with any standard web browser.
4984

5085
.SH "SEE ALSO"
5186

src/librustdoc/rustdoc.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ pub fn opts() -> ~[groups::OptGroup] {
9595
"PASSES"),
9696
optmulti("", "plugins", "space separated list of plugins to also load",
9797
"PLUGINS"),
98-
optflag("", "nodefaults", "don't run the default passes"),
98+
optflag("", "no-defaults", "don't run the default passes"),
9999
]
100100
}
101101

@@ -181,7 +181,7 @@ fn acquire_input(matches: &getopts::Matches) -> Result<Output, ~str> {
181181
///
182182
/// This form of input will run all of the plug/cleaning passes
183183
fn rust_input(cratefile: &str, matches: &getopts::Matches) -> Output {
184-
let mut default_passes = !matches.opt_present("nodefaults");
184+
let mut default_passes = !matches.opt_present("no-defaults");
185185
let mut passes = matches.opt_strs("passes");
186186
let mut plugins = matches.opt_strs("plugins");
187187

@@ -227,7 +227,8 @@ fn rust_input(cratefile: &str, matches: &getopts::Matches) -> Output {
227227
}
228228

229229
// Load all plugins/passes into a PluginManager
230-
let mut pm = plugins::PluginManager::new(Path("/tmp/rustdoc_ng/plugins"));
230+
let path = matches.opt_str("plugin-path").unwrap_or(~"/tmp/rustdoc_ng/plugins");
231+
let mut pm = plugins::PluginManager::new(Path(path));
231232
for pass in passes.iter() {
232233
let plugin = match PASSES.iter().position(|&(p, _, _)| p == *pass) {
233234
Some(i) => PASSES[i].n1(),

0 commit comments

Comments
 (0)