使用 Mdbook 模板
Mdbook 简介
mdBook是一个命令行工具和Rust crate,可将Markdown文件创建为书籍。它与Gitbook非常相似,但用Rust编写。
mdBook是一个免费开源的工具,你可以在GitHub找到源代码,我们建议您使用 Mdbook 来作为文档类/电子书等项目的模板。
Mdbook 示例项目介绍
《程序员》杂志 · 2017 精华本
首先,我们需要进入到已经创建好的文件目录(这里使用的mdbook
),然后在终端中通过mdbook init
来创建 Mdbook 项目,如下:
$ 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...
创建好后的项目目录结构如下:
# mdbook 项目的目录结构
mdbook
|-book
|-book.toml
|-src
其中:
-
book.toml
为 mdbook 的配置文件 -
src
为内容存放目录
通常出情况下,这 2 个将会是我们重点关注的地方,接下来我们以上面提到的实例项目内容为大家进行介绍:
book.toml
[book]
authors = ["《程序员》"]
title = "《程序员》杂志 · 2017 精华本"
language = "zh"
multilingual = false
src = "src"
在配置文件中,我们可以设置 包括 图书作者、标题、语言、是否支持多语言的设置。
src 中的 SUMMARY.MD
src 中的 SUMMARY.MD 文件是用来创建项目目录的,用于组织起 src 中的 MD 文件内容,其格式为:
# 目录
- [大脑理论与智能机器探索者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
中,也支持层级的嵌套,或者是分章节的目录形式,其格式如下:
# 目录
- [标题1](xxx.md)
- [子标题1](xxx.md)
- [子标题2](xxx.md)
- [标题2](xxx.md)
# 章节1名称
---
- [标题3](xxx.md)
src 中的电子书内容
剩余的电子书内容就可以正常按照 MARKDOWN 格式编写即可。
电子书预览
在编写过程中,你可以通过 mdbook serve
来进行电子书的预览:
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