]> git.proxmox.com Git - rustc.git/blame - src/doc/book/README.md
New upstream version 1.35.0+dfsg1
[rustc.git] / src / doc / book / README.md
CommitLineData
cc61c64b
XL
1# The Rust Programming Language
2
3[![Build Status](https://travis-ci.org/rust-lang/book.svg?branch=master)](https://travis-ci.org/rust-lang/book)
4
9fa01778 5This repository contains the source of "The Rust Programming Language" book.
cc61c64b 6
9fa01778 7[The book is available in dead-tree form from No Starch Press][nostarch]
cc61c64b 8
2c00a5a8 9[nostarch]: https://nostarch.com/rust
cc61c64b 10
9fa01778
XL
11You can also read the book for free online. Please see the book as shipped with
12the latest [stable], [beta], or [nightly] Rust releases. Be aware that issues
13in those versions may have been fixed in this repository already, as those
14releases are updated less frequently.
cc61c64b 15
83c7162d
XL
16[stable]: https://doc.rust-lang.org/stable/book/
17[beta]: https://doc.rust-lang.org/beta/book/
18[nightly]: https://doc.rust-lang.org/nightly/book/
ff7c6d11 19
cc61c64b
XL
20## Requirements
21
ea8adc8c 22Building the book requires [mdBook], ideally the same version that
532ac7d7 23rust-lang/rust uses in [this file][rust-mdbook]. To get it:
cc61c64b
XL
24
25[mdBook]: https://github.com/azerupi/mdBook
ea8adc8c 26[rust-mdbook]: https://github.com/rust-lang/rust/blob/master/src/tools/rustbook/Cargo.toml
cc61c64b
XL
27
28```bash
ea8adc8c 29$ cargo install mdbook --vers [version-num]
cc61c64b
XL
30```
31
32## Building
33
9fa01778 34To build the book, type:
cc61c64b
XL
35
36```bash
37$ mdbook build
38```
39
40The output will be in the `book` subdirectory. To check it out, open it in
41your web browser.
42
43_Firefox:_
44```bash
45$ firefox book/index.html # Linux
46$ open -a "Firefox" book/index.html # OS X
47$ Start-Process "firefox.exe" .\book\index.html # Windows (PowerShell)
48$ start firefox.exe .\book\index.html # Windows (Cmd)
49```
50
51_Chrome:_
52```bash
53$ google-chrome book/index.html # Linux
54$ open -a "Google Chrome" book/index.html # OS X
55$ Start-Process "chrome.exe" .\book\index.html # Windows (PowerShell)
56$ start chrome.exe .\book\index.html # Windows (Cmd)
57```
58
59To run the tests:
60
61```bash
62$ mdbook test
63```
64
65## Contributing
66
67We'd love your help! Please see [CONTRIBUTING.md][contrib] to learn about the
68kinds of contributions we're looking for.
69
70[contrib]: https://github.com/rust-lang/book/blob/master/CONTRIBUTING.md
71
72### Translations
73
9fa01778
XL
74We'd love help translating the book! See the [Translations] label to join in
75efforts that are currently in progress. Open a new issue to start working on
76a new language! We're waiting on [mdbook support] for multiple languages
77before we merge any in, but feel free to start!
cc61c64b
XL
78
79[Translations]: https://github.com/rust-lang/book/issues?q=is%3Aopen+is%3Aissue+label%3ATranslations
80[mdbook support]: https://github.com/azerupi/mdBook/issues/5
cc61c64b 81
cc61c64b
XL
82## Graphviz dot
83
cc61c64b
XL
84We're using [Graphviz](http://graphviz.org/) for some of the diagrams in the
85book. The source for those files live in the `dot` directory. To turn a `dot`
86file, for example, `dot/trpl04-01.dot` into an `svg`, run:
87
88```bash
89$ dot dot/trpl04-01.dot -Tsvg > src/img/trpl04-01.svg
90```
91
92In the generated SVG, remove the width and the height attributes from the `svg`
93element and set the `viewBox` attribute to `0.00 0.00 1000.00 1000.00` or other
94values that don't cut off the image.
95
96## Spellchecking
97
98To scan source files for spelling errors, you can use the `spellcheck.sh`
99script. It needs a dictionary of valid words, which is provided in
100`dictionary.txt`. If the script produces a false positive (say, you used word
101`BTreeMap` which the script considers invalid), you need to add this word to
94b46f34 102`dictionary.txt` (keep the sorted order for consistency).