2016-04-02 11:38:53 +08:00
|
|
|
# mdBook
|
2016-03-08 08:03:44 +08:00
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
<table>
|
2016-03-08 08:03:44 +08:00
|
|
|
<tr>
|
|
|
|
<td><strong>Linux / OS X</strong></td>
|
|
|
|
<td>
|
2017-11-22 18:35:18 +08:00
|
|
|
<a href="https://travis-ci.org/rust-lang-nursery/mdBook"><img src="https://travis-ci.org/rust-lang-nursery/mdBook.svg?branch=master"></a>
|
2016-03-08 08:03:44 +08:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td><strong>Windows</strong></td>
|
|
|
|
<td>
|
|
|
|
<a href="https://ci.appveyor.com/project/azerupi/mdbook/"><img src="https://ci.appveyor.com/api/projects/status/o38racsnbcospyc8/branch/master?svg=true"></a>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="2">
|
|
|
|
<a href="https://crates.io/crates/mdbook"><img src="https://img.shields.io/crates/v/mdbook.svg"></a>
|
2017-11-22 18:35:18 +08:00
|
|
|
<a href="LICENSE"><img src="https://img.shields.io/github/license/rust-lang-nursery/mdBook.svg"></a>
|
2016-03-08 08:03:44 +08:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
2015-07-08 06:04:28 +08:00
|
|
|
|
2016-12-29 23:25:51 +08:00
|
|
|
mdBook is a utility to create modern online books from Markdown files.
|
2015-07-08 06:04:28 +08:00
|
|
|
|
2015-07-30 18:58:54 +08:00
|
|
|
|
2016-01-14 05:40:30 +08:00
|
|
|
## What does it look like?
|
2015-07-29 20:50:17 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
The [User Guide] for mdBook has been written in Markdown and is using mdBook to
|
|
|
|
generate the online book-like website you can read. The documentation uses the
|
|
|
|
latest version on GitHub and showcases the available features.
|
2015-07-29 21:06:22 +08:00
|
|
|
|
2015-08-12 21:04:00 +08:00
|
|
|
## Installation
|
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
There are multiple ways to install mdBook.
|
2016-01-14 05:40:30 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
1. **Binaries**
|
|
|
|
|
|
|
|
Binaries are available for download [here][releases]. Make sure to put the
|
|
|
|
path to the binary into your `PATH`.
|
|
|
|
|
|
|
|
2. **From Crates.io**
|
|
|
|
j
|
|
|
|
This requires [Rust] and Cargo to be installed. Once you have installed
|
|
|
|
Rust, type the following in the terminal:
|
2016-01-14 05:40:30 +08:00
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
```
|
|
|
|
cargo install mdbook
|
|
|
|
```
|
2015-09-25 03:04:01 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
This will download and compile mdBook for you, the only thing left to do is
|
|
|
|
to add the Cargo bin directory to your `PATH`.
|
|
|
|
|
|
|
|
**Note for automatic deployment**
|
|
|
|
|
|
|
|
If you are using a script to do automatic deployments using Travis or
|
|
|
|
another CI server, we recommend that you specify a semver version range for
|
|
|
|
mdBook when you install it through your script!
|
2016-01-14 05:40:30 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
This will constrain the server to install the latests **non-breaking**
|
|
|
|
version of mdBook and will prevent your books from failing to build because
|
|
|
|
we released a new version. For example:
|
2017-08-01 20:16:39 +08:00
|
|
|
|
|
|
|
```
|
|
|
|
cargo install mdbook --vers "^0.1.0"
|
|
|
|
```
|
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
3. **From Git**
|
2018-01-05 11:32:54 +08:00
|
|
|
|
|
|
|
The version published to crates.io will ever so slightly be behind the
|
|
|
|
version hosted here on GitHub. If you need the latest version you can build
|
|
|
|
the git version of mdBook yourself. Cargo makes this ***super easy***!
|
2016-01-14 05:40:30 +08:00
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
```
|
2018-01-23 21:07:14 +08:00
|
|
|
cargo install --git https://github.com/rust-lang-nursery/mdBook.git mdbook
|
2016-03-22 21:06:32 +08:00
|
|
|
```
|
2018-01-05 11:32:54 +08:00
|
|
|
|
2016-12-29 23:25:51 +08:00
|
|
|
Again, make sure to add the Cargo bin directory to your `PATH`.
|
2015-09-18 18:05:55 +08:00
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
4. **For Contributions**
|
2018-01-05 11:32:54 +08:00
|
|
|
|
|
|
|
If you want to contribute to mdBook you will have to clone the repository on
|
|
|
|
your local machine:
|
2015-09-18 18:05:55 +08:00
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
```
|
2017-11-22 18:35:18 +08:00
|
|
|
git clone https://github.com/rust-lang-nursery/mdBook.git
|
2016-03-22 21:06:32 +08:00
|
|
|
```
|
2018-01-05 11:32:54 +08:00
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
`cd` into `mdBook/` and run
|
2015-09-18 18:05:55 +08:00
|
|
|
|
2016-03-22 21:06:32 +08:00
|
|
|
```
|
|
|
|
cargo build
|
|
|
|
```
|
2015-09-25 03:04:01 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
The resulting binary can be found in `mdBook/target/debug/` under the name
|
|
|
|
`mdBook` or `mdBook.exe`.
|
2015-08-07 18:14:13 +08:00
|
|
|
|
2015-07-29 20:50:17 +08:00
|
|
|
|
2016-01-14 05:40:30 +08:00
|
|
|
## Usage
|
2015-07-19 21:52:27 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
mdBook will primarily be used as a command line tool, even though it exposes
|
|
|
|
all its functionality as a Rust crate for integration in other projects.
|
2015-07-19 21:52:27 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
Here are the main commands you will want to run. For a more exhaustive
|
|
|
|
explanation, check out the [User Guide].
|
2016-01-14 05:40:30 +08:00
|
|
|
|
|
|
|
- `mdbook init`
|
2015-07-29 20:02:05 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
The init command will create a directory with the minimal boilerplate to
|
|
|
|
start with.
|
2015-07-29 20:02:05 +08:00
|
|
|
|
2016-01-14 05:40:30 +08:00
|
|
|
```
|
|
|
|
book-test/
|
|
|
|
├── book
|
|
|
|
└── src
|
|
|
|
├── chapter_1.md
|
|
|
|
└── SUMMARY.md
|
|
|
|
```
|
2015-07-29 20:02:05 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
`book` and `src` are both directories. `src` contains the markdown files
|
|
|
|
that will be used to render the output to the `book` directory.
|
2016-01-14 05:40:30 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
Please, take a look at the [CLI docs] for more information and some neat tricks.
|
2016-01-14 05:40:30 +08:00
|
|
|
|
|
|
|
- `mdbook build`
|
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
This is the command you will run to render your book, it reads the
|
|
|
|
`SUMMARY.md` file to understand the structure of your book, takes the
|
|
|
|
markdown files in the source directory as input and outputs static html
|
|
|
|
pages that you can upload to a server.
|
2016-01-14 05:40:30 +08:00
|
|
|
|
|
|
|
- `mdbook watch`
|
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
When you run this command, mdbook will watch your markdown files to rebuild
|
|
|
|
the book on every change. This avoids having to come back to the terminal
|
|
|
|
to type `mdbook build` over and over again.
|
2015-07-29 20:02:05 +08:00
|
|
|
|
2016-04-02 11:38:53 +08:00
|
|
|
- `mdbook serve`
|
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
Does the same thing as `mdbook watch` but additionally serves the book at
|
|
|
|
`http://localhost:3000` (port is changeable) and reloads the browser when a
|
|
|
|
change occurs.
|
|
|
|
|
2016-04-02 11:38:53 +08:00
|
|
|
|
2015-08-07 18:14:13 +08:00
|
|
|
### As a library
|
2015-07-29 20:02:05 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
Aside from the command line interface, this crate can also be used as a
|
|
|
|
library. This means that you could integrate it in an existing project, like a
|
|
|
|
web-app for example. Since the command line interface is just a wrapper around
|
|
|
|
the library functionality, when you use this crate as a library you have full
|
|
|
|
access to all the functionality of the command line interface with an easy to
|
|
|
|
use API and more!
|
2015-07-29 20:02:05 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
See the [User Guide] and the [API docs] for more information.
|
2015-07-29 20:02:05 +08:00
|
|
|
|
2015-08-07 18:14:13 +08:00
|
|
|
## Contributions
|
2015-07-29 20:02:05 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
Contributions are highly appreciated and encouraged! Don't hesitate to
|
|
|
|
participate to discussions in the issues, propose new features and ask for
|
|
|
|
help.
|
2016-01-14 05:40:30 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
If you are just starting out with Rust, there are a series of issus that are
|
|
|
|
tagged [E-Easy] and **we will gladly mentor you** so that you can successfully
|
|
|
|
go through the process of fixing a bug or adding a new feature! Let us know if
|
|
|
|
you need any help.
|
2015-08-07 18:14:13 +08:00
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
For more info about contributing, check out our [contribution guide] who helps
|
|
|
|
you go through the build and contribution process!
|
|
|
|
|
|
|
|
There is also a [rendered version][master-docs] of the latest API docs
|
|
|
|
available, for those hacking on `master`.
|
2015-08-07 18:14:13 +08:00
|
|
|
|
2015-07-29 20:34:15 +08:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
2018-01-05 11:32:54 +08:00
|
|
|
All the code in this repository is released under the ***Mozilla Public License v2.0***, for more information take a look at the [LICENSE] file.
|
|
|
|
|
|
|
|
|
|
|
|
[User Guide]: https://rust-lang-nursery.github.io/mdBook/
|
|
|
|
[API docs]: https://docs.rs/mdbook/*/mdbook/
|
|
|
|
[E-Easy]: https://github.com/rust-lang-nursery/mdBook/issues?q=is%3Aopen+is%3Aissue+label%3AE-Easy
|
|
|
|
[contribution guide]: https://github.com/rust-lang-nursery/mdBook/blob/master/CONTRIBUTING.md
|
|
|
|
[LICENSE]: https://github.com/rust-lang-nursery/mdBook/blob/master/LICENSE
|
|
|
|
[releases]: https://github.com/rust-lang-nursery/mdBook/releases
|
|
|
|
[Rust]: https://www.rust-lang.org/
|
|
|
|
[CLI docs]: http://rust-lang-nursery.github.io/mdBook/cli/init.html
|
|
|
|
[master-docs]: http://rust-lang-nursery.github.io/mdBook/mdbook/
|