mirror of
https://github.com/rust-lang/book.git
synced 2026-05-18 06:43:34 -04:00
103 lines
3.3 KiB
Markdown
103 lines
3.3 KiB
Markdown
# The Rust Programming Language
|
|
|
|
[](https://travis-ci.com/rust-lang/book)
|
|
|
|
This repository contains the source of "The Rust Programming Language" book.
|
|
|
|
[The book is available in dead-tree form from No Starch Press][nostarch]
|
|
|
|
[nostarch]: https://nostarch.com/rust
|
|
|
|
You can also read the book for free online. Please see the book as shipped with
|
|
the latest [stable], [beta], or [nightly] Rust releases. Be aware that issues
|
|
in those versions may have been fixed in this repository already, as those
|
|
releases are updated less frequently.
|
|
|
|
[stable]: https://doc.rust-lang.org/stable/book/
|
|
[beta]: https://doc.rust-lang.org/beta/book/
|
|
[nightly]: https://doc.rust-lang.org/nightly/book/
|
|
|
|
## Requirements
|
|
|
|
Building the book requires [mdBook], ideally the same 0.3.x version that
|
|
rust-lang/rust uses in [this file][rust-mdbook]. To get it:
|
|
|
|
[mdBook]: https://github.com/rust-lang-nursery/mdBook
|
|
[rust-mdbook]: https://github.com/rust-lang/rust/blob/master/src/tools/rustbook/Cargo.toml
|
|
|
|
```bash
|
|
$ cargo install mdbook --vers [version-num]
|
|
```
|
|
|
|
## Building
|
|
|
|
To build the book, type:
|
|
|
|
```bash
|
|
$ mdbook build
|
|
```
|
|
|
|
The output will be in the `book` subdirectory. To check it out, open it in
|
|
your web browser.
|
|
|
|
_Firefox:_
|
|
```bash
|
|
$ firefox book/index.html # Linux
|
|
$ open -a "Firefox" book/index.html # OS X
|
|
$ Start-Process "firefox.exe" .\book\index.html # Windows (PowerShell)
|
|
$ start firefox.exe .\book\index.html # Windows (Cmd)
|
|
```
|
|
|
|
_Chrome:_
|
|
```bash
|
|
$ google-chrome book/index.html # Linux
|
|
$ open -a "Google Chrome" book/index.html # OS X
|
|
$ Start-Process "chrome.exe" .\book\index.html # Windows (PowerShell)
|
|
$ start chrome.exe .\book\index.html # Windows (Cmd)
|
|
```
|
|
|
|
To run the tests:
|
|
|
|
```bash
|
|
$ mdbook test
|
|
```
|
|
|
|
## Contributing
|
|
|
|
We'd love your help! Please see [CONTRIBUTING.md][contrib] to learn about the
|
|
kinds of contributions we're looking for.
|
|
|
|
[contrib]: https://github.com/rust-lang/book/blob/master/CONTRIBUTING.md
|
|
|
|
### Translations
|
|
|
|
We'd love help translating the book! See the [Translations] label to join in
|
|
efforts that are currently in progress. Open a new issue to start working on
|
|
a new language! We're waiting on [mdbook support] for multiple languages
|
|
before we merge any in, but feel free to start!
|
|
|
|
[Translations]: https://github.com/rust-lang/book/issues?q=is%3Aopen+is%3Aissue+label%3ATranslations
|
|
[mdbook support]: https://github.com/rust-lang-nursery/mdBook/issues/5
|
|
|
|
## Graphviz dot
|
|
|
|
We're using [Graphviz](http://graphviz.org/) for some of the diagrams in the
|
|
book. The source for those files live in the `dot` directory. To turn a `dot`
|
|
file, for example, `dot/trpl04-01.dot` into an `svg`, run:
|
|
|
|
```bash
|
|
$ dot dot/trpl04-01.dot -Tsvg > src/img/trpl04-01.svg
|
|
```
|
|
|
|
In the generated SVG, remove the width and the height attributes from the `svg`
|
|
element and set the `viewBox` attribute to `0.00 0.00 1000.00 1000.00` or other
|
|
values that don't cut off the image.
|
|
|
|
## Spellchecking
|
|
|
|
To scan source files for spelling errors, you can use the `spellcheck.sh`
|
|
script. It needs a dictionary of valid words, which is provided in
|
|
`dictionary.txt`. If the script produces a false positive (say, you used word
|
|
`BTreeMap` which the script considers invalid), you need to add this word to
|
|
`dictionary.txt` (keep the sorted order for consistency).
|