]>
Commit | Line | Data |
---|---|---|
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 | 5 | This 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 |
11 | You can also read the book for free online. Please see the book as shipped with |
12 | the latest [stable], [beta], or [nightly] Rust releases. Be aware that issues | |
13 | in those versions may have been fixed in this repository already, as those | |
14 | releases 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 | 22 | Building the book requires [mdBook], ideally the same version that |
532ac7d7 | 23 | rust-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 | 34 | To build the book, type: |
cc61c64b XL |
35 | |
36 | ```bash | |
37 | $ mdbook build | |
38 | ``` | |
39 | ||
40 | The output will be in the `book` subdirectory. To check it out, open it in | |
41 | your 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 | ||
59 | To run the tests: | |
60 | ||
61 | ```bash | |
62 | $ mdbook test | |
63 | ``` | |
64 | ||
65 | ## Contributing | |
66 | ||
67 | We'd love your help! Please see [CONTRIBUTING.md][contrib] to learn about the | |
68 | kinds 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 |
74 | We'd love help translating the book! See the [Translations] label to join in |
75 | efforts that are currently in progress. Open a new issue to start working on | |
76 | a new language! We're waiting on [mdbook support] for multiple languages | |
77 | before 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 |
84 | We're using [Graphviz](http://graphviz.org/) for some of the diagrams in the |
85 | book. The source for those files live in the `dot` directory. To turn a `dot` | |
86 | file, 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 | ||
92 | In the generated SVG, remove the width and the height attributes from the `svg` | |
93 | element and set the `viewBox` attribute to `0.00 0.00 1000.00 1000.00` or other | |
94 | values that don't cut off the image. | |
95 | ||
96 | ## Spellchecking | |
97 | ||
98 | To scan source files for spelling errors, you can use the `spellcheck.sh` | |
99 | script. 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). |