AI时代来临后,有Github Copilot和众多国内AI辅助编程插件的加持下,最近更有神器Cursor让你的编辑器无比强大。在编辑器中编写文章或博客变得非常简单,与其等待各个Markdown软件的AI能力,不如直接使用AI加持下的编辑器来写作,今天给大家带来的就是一个可以通过编辑器写作的神器。

mdBook是一个轻量级、高性能的开源Markdown工具,专为技术文档编写设计。它易于使用,完全兼容标准Markdown语法,并支持高级特性如LaTeX公式和自定义CSS。mdBook高度可定制,允许自定义模板和主题,内置测试框架确保文档准确性。它跨平台支持,社区活跃,并且可以输出HTML、PDF等多种格式,满足不同需求。

https://github.com/rust-lang/mdBook

安装

首先,确保安装了Rust,如果没有安装,可以通过下面的命令安装

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装 MdBook

cargo install mdbook


 

创建一本书

初始化并渲染

mdbook init my-first-book
cd my-first-book
mdbook serve --open


 

渲染一本书的方法有很多种,但最简单的方法之一是使用 serve 命令,它将构建你的书并启动一个本地 Web 服务器,--open 选项将打开您的默认 Web 浏览器以查看您的新图书。即使在编辑书籍内容时,您也可以让服务器保持运行状态,mdbook 将自动重建输出并自动刷新您的 Web 浏览器。

 

项目结构分析

我们来通过tree命令来输出项目结构,结果如下:

.
├── book.toml
└── src
    ├── SUMMARY.md
    └── chapter_1.md

2 directories, 3 files


 

我们可以发现根目录中,有一个 book.toml 文件,其中包含用于描述如何构建书籍的设置。这是用 TOML 标记语言编写的。

一个非常基本的 book.toml 可以像这样简单:

[book]
title = 
"My First Book"


 

SUMMARY.md

书籍的下一个主要部分是位于 src/SUMMARY.md 的摘要文件。此文件包含书中所有章节的列表。必须先将其添加到此列表中,然后才能查看章节。

下面是一个包含几章的基本摘要文件:

[Introduction](README.md)

- [My First Chapter](my-first-chapter.md)
- [Nested example](nested/README.md)
    - [Sub-chapter](nested/sub-chapter.md)


 

尝试在编辑器中打开 src/SUMMARY.md 并添加一些章节。如果任何章节文件不存在,mdbook 将自动为您创建它们。

源文件

你的书的内容都包含在 src 目录中。每个章节都是一个单独的 Markdown 文件。通常,每章都以带有章节标题的 1 级标题开头。

# My First Chapter
Fill out your content here.


 

发布你的书籍

写完书后,您可能希望将其托管在某个地方供其他人查看。第一步是构建这本书的输出。这可以通过 book.toml 文件所在的同一目录中的 mdbook build 命令来完成:

mdbook build

 

这将生成一个名为 book 的目录,其中包含您书籍的 HTML 内容。然后,您可以将此目录放在任何 Web 服务器上以托管它。

发布后的目录结构如下:

.
├── book
│   ├── 404.html
│   ├── FontAwesome
│   │   ├── css
│   │   │   └── font-awesome.css
│   │   └── fonts
│   │       ├── FontAwesome.ttf
│   │       ├── fontawesome-webfont.eot
│   │       ├── fontawesome-webfont.svg
│   │       ├── fontawesome-webfont.ttf
│   │       ├── fontawesome-webfont.woff
│   │       └── fontawesome-webfont.woff2
│   ├── ayu-highlight.css
│   ├── book.js
│   ├── chapter_1.html
│   ├── clipboard.min.js
│   ├── css
│   │   ├── chrome.css
│   │   ├── general.css
│   │   ├── print.css
│   │   └── variables.css
│   ├── elasticlunr.min.js
│   ├── favicon.png
│   ├── favicon.svg
│   ├── fonts
│   │   ├── OPEN-SANS-LICENSE.txt
│   │   ├── SOURCE-CODE-PRO-LICENSE.txt
│   │   ├── fonts.css
│   │   ├── open-sans-v17-all-charsets-300.woff2
│   │   ├── open-sans-v17-all-charsets-300italic.woff2
│   │   ├── open-sans-v17-all-charsets-600.woff2
│   │   ├── open-sans-v17-all-charsets-600italic.woff2
│   │   ├── open-sans-v17-all-charsets-700.woff2
│   │   ├── open-sans-v17-all-charsets-700italic.woff2
│   │   ├── open-sans-v17-all-charsets-800.woff2
│   │   ├── open-sans-v17-all-charsets-800italic.woff2
│   │   ├── open-sans-v17-all-charsets-italic.woff2
│   │   ├── open-sans-v17-all-charsets-regular.woff2
│   │   └── source-code-pro-v11-all-charsets-500.woff2
│   ├── highlight.css
│   ├── highlight.js
│   ├── index.html
│   ├── mark.min.js
│   ├── print.html
│   ├── searcher.js
│   ├── searchindex.js
│   ├── searchindex.json
│   ├── toc.html
│   ├── toc.js
│   └── tomorrow-night.css
├── book.toml
└── src
    ├── SUMMARY.md
    └── chapter_1.md

8 directories, 47 files

 

总结

MdBook是一个非常强大的通过Markdown编写书籍的工具,如果你也有好点子需要输出,不妨尝试一下吧。