This is the source code of the Rust by Example website!
See CONTRIBUTING.md.
Install Rust and run:
sudo apt-get install nodejs npm subversion
sudo ln -s /usr/bin/nodejs /usr/bin/node
Install Rust nightly,
node
, npm
, and subversion
.
Run:
make all
make html pdf epub
make test
View the results with make serve
.
We use these tools to generate the static site:
gitbook
will generate the site from Markdown files (see details about how it
works here).
Before running gitbook
, we do a preprocessing step using
src/main.rs.
This preprocessing has two steps:
SUMMARY.md
is generated from the
examples/structure.json file. This JSON file
contains a tree-like structure of "examples".
Each example has:
- an id, e.g.
hello
- a title, e.g.
Hello World
- optionally, children, which is a vector of sub-examples, e.g.
null
- a directory under
examples
, e.g. examples/hello - an entry in examples/structure.json, e.g.
{ "id": "hello", "title": "Hello World", "children": null }
- some source file(s), e.g. examples/hello/hello.rs
- an input markdown file, e.g. examples/hello/input.md
When dealing with a child example, the path will have to include the id of its
ancestors; e.g. examples/variable/mut/input.md
, implies that a mut
example
lives under the variable
example.
Instead of including the Rust code directly in input.md
, the code lives in
separate source files; the preprocessing step will insert the source code
into the Markdown file.
For example, to insert the source code of the hello.rs
file, the following
syntax is used in the Markdown file:
{hello.play}
expands the source code embedded in a live code editor{hello.rs}
expands to static/plain source code.{hello.out}
expands to the output of executing the source code.
The Makefile provides the following recipes:
make
: buildsupdate.rs
and does the preprocessing stepmake book
: runsgitbook
to generate the bookmake serve
: runsgitbook --serve
to generate the book and publishes it underlocalhost:4000
make test
: will check all the rust source files for compilation errors
Rust by Example is dual-licensed under the Apache 2.0 license and the MIT license.
See LICENSE-APACHE and LICENSE-MIT for more details.
rust-by-example's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.