# Documenting rustc

You might want to build documentation of the various components 
available like the standard library. There’s two ways to go about this.
 You can run rustdoc directly on the file to make sure the HTML is 
 correct, which is fast. Alternatively, you can build the documentation 
 as part of the  build process through x.py. Both are viable methods 
 since documentation  is more about the content.

## Document everything

   ```bash
   ./x.py doc
   ```

## If you want to avoid the whole Stage 2 build

```bash
./x.py doc --stage 1
```

First the compiler and rustdoc get built to make sure everything is okay
and then it documents the files.

## Document specific components

```bash
   ./x.py doc src/doc/book
   ./x.py doc src/doc/nomicon
   ./x.py doc src/doc/book src/libstd
```

Much like individual tests or building certain components you can build only
 the documentation you want.

## Document internal rustc items

Compiler documentation is not built by default. There's a flag in
config.toml for achieving the same.
But, when enabled, compiler documentation does include internal items.

Next open up config.toml and make sure these two lines are set to true:

```bash
docs = true
compiler-docs = true
```

When you want to build the compiler docs as well run this command:

```bash
./x.py doc
```

This will see that the docs and compiler-docs options are set to true
and build the normally hidden compiler docs!

### Compiler Documentation

The documentation for the rust components are found at [rustc doc].

[rustc doc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc/