4
4
nav {
5
5
display : none ;
6
6
}
7
+ body {
8
+ font-family : serif ;
9
+ }
10
+ h1 , h2 , h3 , h4 , h5 , h6 {
11
+ font-family : sans-serif ;
12
+ }
13
+ h3 {
14
+ font-size : 1.35rem ;
15
+ }
16
+ h4 {
17
+ font-size : 1.1rem ;
18
+ }
19
+
20
+ /* Formatting for docs search bar */
7
21
#search-input {
8
22
width : calc (100% - 58px );
9
23
}
@@ -21,53 +35,74 @@ nav {
21
35
#search-but :hover , #search-input :focus {
22
36
border-color : #55a9ff ;
23
37
}
24
- h2 {
25
- font-size : 18px ;
38
+
39
+ /* Formatting for external link icon */
40
+ svg .external-link {
41
+ display : inline-block ;
42
+ position : relative ;
43
+ vertical-align : super ;
44
+ width : 0.7rem ;
45
+ height : 0.7rem ;
46
+ padding-left : 2px ;
47
+ top : 3px ;
26
48
}
27
49
</style >
28
50
29
- Welcome to an overview of the documentation provided by the [ Rust project] .
30
- All of these projects are managed by the Docs Team; there are other
31
- unofficial documentation resources as well!
51
+ Welcome to an overview of the documentation provided by the [ Rust
52
+ project] . This page contains links to various helpful references,
53
+ most of which are available offline (if opened with ` rustup doc ` ). Many of these
54
+ resources take the form of "books"; we collectively call these "The Rust
55
+ Bookshelf." Some are large, some are small.
32
56
33
- Many of these resources take the form of "books"; we collectively call these
34
- "The Rust Bookshelf." Some are large, some are small.
57
+ All of these books are managed by the Rust Organization, but other unofficial
58
+ documentation resources are included here as well!
35
59
36
- # Learn Rust
60
+ If you're just looking for the standard library reference, here it is:
61
+ [ Rust API documentation] ( std/index.html )
37
62
38
- If you'd like to learn Rust, this is the spot for you! All of these resources
63
+
64
+ ## Learning Rust
65
+
66
+ If you'd like to learn Rust, this is the section for you! All of these resources
39
67
assume that you have programmed before, but not in any specific language:
40
68
41
- ## The Rust Programming Language
69
+ ### The Rust Programming Language
42
70
43
- Affectionately nicknamed "the book," [ The Rust Programming
44
- Language ] ( book/index.html ) will give you an overview of the language from
45
- first principles. You'll build a few projects along the way, and by the end,
46
- you'll have a solid grasp of the language.
71
+ Affectionately nicknamed "the book," [ The Rust Programming Language ] ( book/index.html )
72
+ will give you an overview of the language from first principles. You'll build a
73
+ few projects along the way, and by the end, you'll have a solid grasp of how to
74
+ use the language.
47
75
48
- ## Rust By Example
76
+ ### Rust By Example
49
77
50
78
If reading multiple hundreds of pages about a language isn't your style, then
51
- [ Rust By Example] ( rust-by-example/index.html ) has you covered. While the book talks about code with
52
- a lot of words, RBE shows off a bunch of code, and keeps the talking to a
53
- minimum. It also includes exercises!
79
+ [ Rust By Example] ( rust-by-example/index.html ) has you covered. RBE shows off a
80
+ bunch of code without using a lot of words. It also includes exercises!
81
+
82
+ ### Rustlings
83
+
84
+ [ Rustlings] ( https://github.com/rust-lang/rustlings ) guides you
85
+ through downloading and setting up the Rust toolchain, then provides an
86
+ interactive tool that teaches you how to solve coding challenges in Rust.
87
+
88
+ ### Rust Playground
54
89
55
- ## Rustlings
90
+ The [ Rust Playground] ( https://play.rust-lang.org ) is a great place
91
+ to try out and share small bits of code, or experiment with some of the most
92
+ popular crates.
56
93
57
- [ Rustlings] ( https://github.com/rust-lang/rustlings ) guides you through downloading and setting up the Rust toolchain,
58
- and teaches you the basics of reading and writing Rust syntax. It's an
59
- alternative to Rust by Example that works with your own environment.
60
94
61
- # Use Rust
95
+ ## Using Rust
62
96
63
- Once you've gotten familiar with the language, these resources can help you
64
- when you're actually using it day-to-day .
97
+ Once you've gotten familiar with the language, these resources can help you put
98
+ it to work .
65
99
66
- ## The Standard Library
100
+ ### The Standard Library
67
101
68
- Rust's standard library has [ extensive API documentation] ( std/index.html ) ,
69
- with explanations of how to use various things, as well as example code for
70
- accomplishing various tasks.
102
+ Rust's standard library has [ extensive API documentation] ( std/index.html ) , with
103
+ explanations of how to use various things, as well as example code for
104
+ accomplishing various tasks. Code examples have a "Run" button on hover that
105
+ opens the sample in the playground.
71
106
72
107
<div >
73
108
<form action =" std/index.html " method =" get " >
@@ -77,76 +112,143 @@ accomplishing various tasks.
77
112
</form >
78
113
</div >
79
114
80
- ## The Edition Guide
115
+ ### Your Personal Documentation
81
116
82
- [ The Edition Guide] ( edition-guide/index.html ) describes the Rust editions.
117
+ Whenever you are working in a crate, ` cargo doc --open ` will generate
118
+ documentation for your project _ and_ all its dependencies in their correct
119
+ version, and open it in your browser. Add the flag ` --document-private-items ` to
120
+ also show items not marked ` pub ` .
83
121
84
- ## The Rustc Book
122
+ ### The Edition Guide
85
123
86
- [ The Rustc Book] ( rustc/index.html ) describes the Rust compiler, ` rustc ` .
124
+ [ The Edition Guide] ( edition-guide/index.html ) describes the Rust editions and
125
+ their differences.
87
126
88
- ## The Cargo Book
127
+ ### The ` rustc ` Book
89
128
90
- [ The Cargo Book] ( cargo /index.html) is a guide to Cargo, Rust's build tool and dependency manager .
129
+ [ The ` rustc ` Book] ( rustc /index.html) describes the Rust compiler, ` rustc ` .
91
130
92
- ## The Rustdoc Book
131
+ ### The Cargo Book
132
+
133
+ [ The Cargo Book] ( cargo/index.html ) is a guide to Cargo, Rust's build tool and
134
+ dependency manager.
135
+
136
+ ### The Rustdoc Book
93
137
94
138
[ The Rustdoc Book] ( rustdoc/index.html ) describes our documentation tool, ` rustdoc ` .
95
139
96
- ## The Clippy Book
140
+ ### The Clippy Book
97
141
98
142
[ The Clippy Book] ( clippy/index.html ) describes our static analyzer, Clippy.
99
143
100
- ## Extended Error Listing
144
+ ### Extended Error Listing
101
145
102
146
Many of Rust's errors come with error codes, and you can request extended
103
- diagnostics from the compiler on those errors. You can also [ read them
104
- here] ( error_codes/index.html ) , if you prefer to read them that way.
147
+ diagnostics from the compiler on those errors (with ` rustc --explain ` ). You can
148
+ also read them here if you prefer: [ rustc error codes] ( error_codes/index.html )
149
+
105
150
106
- # Master Rust
151
+ ## Mastering Rust
107
152
108
153
Once you're quite familiar with the language, you may find these advanced
109
154
resources useful.
110
155
111
- ## The Reference
156
+ ### The Reference
112
157
113
- [ The Reference] ( reference/index.html ) is not a formal spec, but is more detailed and
114
- comprehensive than the book.
158
+ [ The Reference] ( reference/index.html ) is not a formal spec, but is more detailed
159
+ and comprehensive than the book.
115
160
116
- ## The Style Guide
161
+ ### The Style Guide
117
162
118
- [ The Rust Style Guide] ( style-guide/index.html ) describes the standard formatting of Rust
119
- code. Most developers use rustfmt to format their code, and rustfmt's default
120
- formatting matches this style guide.
163
+ [ The Rust Style Guide] ( style-guide/index.html ) describes the standard formatting
164
+ of Rust code. Most developers use ` cargo fmt ` to invoke ` rustfmt ` and format the
165
+ code automatically (the result matches this style guide) .
121
166
122
- ## The Rustonomicon
167
+ ### The Rustonomicon
123
168
124
- [ The Rustonomicon] ( nomicon/index.html ) is your guidebook to the dark arts of unsafe
125
- Rust. It's also sometimes called "the 'nomicon."
169
+ [ The Rustonomicon] ( nomicon/index.html ) is your guidebook to the dark arts of
170
+ unsafe Rust. It's also sometimes called "the 'nomicon."
126
171
127
- ## The Unstable Book
172
+ ### The Unstable Book
128
173
129
- [ The Unstable Book] ( unstable-book/index.html ) has documentation for unstable features.
174
+ [ The Unstable Book] ( unstable-book/index.html ) has documentation for unstable
175
+ features.
130
176
131
- ## The ` rustc ` Contribution Guide
177
+ ### The ` rustc ` Contribution Guide
132
178
133
- [ The ` rustc ` Guide] ( https://rustc-dev-guide.rust-lang.org/ ) documents how
134
- the compiler works and how to contribute to it. This is useful if you want to build
135
- or modify the Rust compiler from source (e.g. to target something non-standard).
179
+ [ The ` rustc ` Guide] ( https://rustc-dev-guide.rust-lang.org/ )
180
+ documents how the compiler works and how to contribute to it. This is useful if
181
+ you want to build or modify the Rust compiler from source (e.g. to target
182
+ something non-standard).
136
183
137
- # Specialize Rust
138
184
139
- When using Rust in specific domain areas, consider using the following resources tailored to each domain.
185
+ ## Specialized Rust
140
186
141
- ## Embedded Systems
187
+ When using Rust in specific domains, consider using the following resources
188
+ tailored to each area.
142
189
143
- When developing for Bare Metal or Embedded Linux systems, you may find these resources maintained by the [ Embedded Working Group] useful.
190
+ ### Embedded Systems
191
+
192
+ When developing for Bare Metal or Embedded Linux systems, you may find these
193
+ resources maintained by the [ Embedded Working Group] useful.
144
194
145
195
[ Embedded Working Group ] : https://github.com/rust-embedded
146
196
147
- ### The Embedded Rust Book
197
+ #### The Embedded Rust Book
148
198
149
- [ The Embedded Rust Book] is targeted at developers familiar with embedded development and familiar with Rust, but have not used Rust for embedded development.
199
+ [ The Embedded Rust Book] is targeted at developers familiar with embedded
200
+ development and familiar with Rust, but have not used Rust for embedded
201
+ development.
150
202
151
203
[ The Embedded Rust Book ] : embedded-book/index.html
152
204
[ Rust project ] : https://www.rust-lang.org
205
+
206
+ <script >
207
+ // check if a given link is external
208
+ function isExternalLink (url ) {
209
+ const tmp = document .createElement (' a' );
210
+ tmp .href = url;
211
+ return tmp .host !== window .location .host ;
212
+ }
213
+
214
+ // Add the `external` class to all <a> tags with external links and append the external link SVG
215
+ function updateExternalAnchors () {
216
+ /*
217
+ External link SVG from Font-Awesome
218
+ CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0
219
+ via Wikimedia Commons
220
+ */
221
+ const svgText = ` <svg
222
+ class='external-link'
223
+ xmlns='http://www.w3.org/2000/svg'
224
+ viewBox='0 -256 1850 1850'
225
+ width='100%'
226
+ height='100%'>
227
+ <g transform='matrix(1,0,0,-1,30,1427)'>
228
+ <path d='M 1408,608 V 288 Q 1408,169 1323.5,84.5 1239,0 1120,
229
+ 0 H 288 Q 169,0 84.5,84.5 0,169 0,288 v 832 Q 0,1239 84.5,1323.5 169,
230
+ 1408 288,1408 h 704 q 14,0 23,-9 9,-9 9,-23 v -64 q 0,-14 -9,-23 -9,
231
+ -9 -23,-9 H 288 q -66,0 -113,-47 -47,-47 -47,-113 V 288 q 0,-66 47,
232
+ -113 47,-47 113,-47 h 832 q 66,0 113,47 47,47 47,113 v 320 q 0,14 9,
233
+ 23 9,9 23,9 h 64 q 14,0 23,-9 9,-9 9,-23 z m 384,864 V 960 q 0,
234
+ -26 -19,-45 -19,-19 -45,-19 -26,0 -45,19 L 1507,1091 855,439 q -10,
235
+ -10 -23,-10 -13,0 -23,10 L 695,553 q -10,10 -10,23 0,13 10,23 l 652,
236
+ 652 -176,176 q -19,19 -19,45 0,26 19,45 19,19 45,19 h 512 q 26,0 45,
237
+ -19 19,-19 19,-45 z' style='fill:currentColor' />
238
+ </g>
239
+ </svg>` ;
240
+ let allAnchors = document .getElementsByTagName (" a" );
241
+
242
+ for (var i = 0 ; i < allAnchors .length ; ++ i) {
243
+ let anchor = allAnchors[i];
244
+ if (isExternalLink (anchor .href )) {
245
+ anchor .classList .add (" external" );
246
+ anchor .innerHTML += svgText;
247
+ }
248
+ }
249
+ }
250
+
251
+ // on page load, update external anchors
252
+ document .addEventListener (" DOMContentLoaded" , updateExternalAnchors);
253
+
254
+ </script >
0 commit comments