|
|
# 使用 Mdbook 模板
|
|
|
|
|
|
## Mdbook 简介
|
|
|
|
|
|
**mdBook**是一个命令行工具和Rust crate,可将Markdown文件创建为书籍。它与Gitbook非常相似,但用[Rust](http://www.rust-lang.org/)编写。
|
|
|
|
|
|
mdBook是一个免费开源的工具,你可以在[GitHub](https://github.com/rust-lang-nursery/mdBook)找到源代码,我们建议您使用 Mdbook 来作为文档类/电子书等项目的模板。
|
|
|
|
|
|
[Mdbook 官方文档地址](https://rust-lang.github.io/mdBook/)
|
|
|
|
|
|
[Mdbook 中文文档地址](https://mdbook.budshome.com/)
|
|
|
|
|
|
|
|
|
|
|
|
## Mdbook 示例项目介绍
|
|
|
|
|
|
### 《程序员》杂志 · 2017 精华本
|
|
|
|
|
|
- [基于 Mdbook 的电子图书](http://codechina.gitcode.host/programmer/2017/)
|
|
|
|
|
|
- [项目地址](https://codechina.csdn.net/codechina/programmer/2017)
|
|
|
|
|
|
首先,我们需要进入到已经创建好的文件目录(这里使用的`mdbook`),然后在终端中通过`mdbook init`来创建 Mdbook 项目,如下:
|
|
|
|
|
|
```bash
|
|
|
$ mdbook init
|
|
|
|
|
|
Do you want a .gitignore to be created? (y/n)
|
|
|
y
|
|
|
What title would you like to give the book?
|
|
|
Mdbook 使用教程
|
|
|
2020-11-01 10:43:28 [INFO] (mdbook::book::init): Creating a new book with stub content
|
|
|
|
|
|
All done, no errors...
|
|
|
```
|
|
|
|
|
|
创建好后的项目目录结构如下:
|
|
|
|
|
|
```bash
|
|
|
# mdbook 项目的目录结构
|
|
|
mdbook
|
|
|
|-book
|
|
|
|-book.toml
|
|
|
|-src
|
|
|
```
|
|
|
|
|
|
其中:
|
|
|
|
|
|
- `book.toml` 为 mdbook 的配置文件
|
|
|
- `src` 为内容存放目录
|
|
|
|
|
|
通常出情况下,这 2 个将会是我们重点关注的地方,接下来我们以上面提到的实例项目内容为大家进行介绍:
|
|
|
|
|
|
### book.toml
|
|
|
|
|
|
```bash
|
|
|
[book]
|
|
|
authors = ["《程序员》"]
|
|
|
title = "《程序员》杂志 · 2017 精华本"
|
|
|
language = "zh"
|
|
|
multilingual = false
|
|
|
src = "src"
|
|
|
```
|
|
|
|
|
|
在配置文件中,我们可以设置 包括 图书作者、标题、语言、是否支持多语言的设置。
|
|
|
|
|
|
### src 中的 SUMMARY.MD
|
|
|
|
|
|
src 中的 SUMMARY.MD 文件是用来创建项目目录的,用于组织起 src 中的 MD 文件内容,其格式为:
|
|
|
|
|
|
```markdown
|
|
|
# 目录
|
|
|
- [大脑理论与智能机器探索者Jeff Hawkins专访](./1-大脑理论与智能机器探索者Jeff-Hawkins专访.md)
|
|
|
- [Xerox PARC 为何与众不同,今日的研究院当如何打造?](./2-Xerox-PARC-为何与众不同,今日的研究院当如何打造?.md)
|
|
|
- [无模式文本编辑与“剪切、复制、粘贴”的历史](./3-无模式文本编辑与“剪切、复制、粘贴”的历史.md)
|
|
|
- [导航者:程序员的未来](./4-导航者:程序员的未来.md)
|
|
|
- [Hacker 曾经知晓的那些事](./5-Hacker-曾经知晓的那些事.md)
|
|
|
- [如何成为一名推荐系统工程师](./1-如何成为一名推荐系统工程师.md)
|
|
|
- [如何成为一名对话系统工程师](./2-如何成为一名对话系统工程师.md)
|
|
|
- [如何成为一名数据科学家](./3-如何成为一名数据科学家.md)
|
|
|
```
|
|
|
|
|
|
在 `SUMMARY.MD`中,也支持层级的嵌套,或者是分章节的目录形式,其格式如下:
|
|
|
|
|
|
```markdowon
|
|
|
# 目录
|
|
|
- [标题1](xxx.md)
|
|
|
- [子标题1](xxx.md)
|
|
|
- [子标题2](xxx.md)
|
|
|
- [标题2](xxx.md)
|
|
|
# 章节1名称
|
|
|
---
|
|
|
- [标题3](xxx.md)
|
|
|
```
|
|
|
|
|
|
### src 中的电子书内容
|
|
|
|
|
|
剩余的电子书内容就可以正常按照 MARKDOWN 格式编写即可。
|
|
|
|
|
|
### 电子书预览
|
|
|
|
|
|
在编写过程中,你可以通过 `mdbook serve` 来进行电子书的预览:
|
|
|
|
|
|
```bash
|
|
|
mdbook git:(ai4me) $ mdbook serve
|
|
|
2020-11-01 11:11:54 [INFO] (mdbook::book): Book building has started
|
|
|
2020-11-01 11:11:54 [INFO] (mdbook::book): Running the html backend
|
|
|
2020-11-01 11:11:56 [INFO] (mdbook::cmd::serve): Serving on: http://localhost:3000
|
|
|
2020-11-01 11:11:56 [INFO] (warp::server): Server::run; addr=V4(127.0.0.1:3000)
|
|
|
2020-11-01 11:11:56 [INFO] (warp::server): listening on http://127.0.0.1:3000
|
|
|
2020-11-01 11:11:56 [INFO] (mdbook::cmd::watch): Listening for changes...
|
|
|
2020-11-01 11:12:15 [INFO] (mdbook::cmd::serve): Files changed: ["/Users/xxm/Documents/gitlab/ebooks/mdbook/src/SUMMARY.md"]
|
|
|
2020-11-01 11:12:15 [INFO] (mdbook::cmd::serve): Building book...
|
|
|
2020-11-01 11:12:15 [INFO] (mdbook::book): Book building has started
|
|
|
2020-11-01 11:12:15 [INFO] (mdbook::book): Running the html backend
|
|
|
```
|
|
|
|