MDBook 使用指南

news2024/12/24 16:16:43

MDBook 是一个灵感来自 Gitbook 的强大工具,专门用于创建电子书和文档。它能够将 Markdown 编写的内容编译成静态网站,非常适合项目文档、教程和书籍的发布。

个人实践过许多文档方案,如 hexo、hugo、WordPress、docsify 和 mdbook 等,每种方案各有其优势和适用场景。对于博客而言,hexo 适合更新零散文章且维护简单; WordPress 提供了丰富的功能和主题配置,但配置起来相对麻烦;在文档生成方面,docsify 适合内容不多的团队文档,而 mdbook 则非常适合长篇文档和书籍的场景。

今天,我们主要介绍 MDBook 的基本用法。

安装与配置

首先,安装 Rust。具体步骤参阅 Rust 入门指南。

然后通过 Rust 的包管理器 Cargo 安装 MDBook:

cargo install mdbook

安装完成后,通过以下命令来验证安装:

mdbook --version

初始化项目

创建一个新的 MDBook 项目,执行以下命令:

mdbook init my-book

根据提示填写相应信息:

❯ mdbook init my-book

Do you want a .gitignore to be created? (y/n)
y
What title would you like to give the book? 
MDBook demo
2024-11-12 00:14:39 [INFO] (mdbook::book::init): Creating a new book with stub content

All done, no errors...

这样将会创建一个名为 my-book 的新目录,其中包含项目的配置文件和目录结构:

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

文件结构

book.toml 是 MDBook 的配置文件,用于定义书籍的标题、作者及其他配置选项。示例如下:

[book]
authors = ["rexwzh"]
language = "en"
multilingual = false
src = "src"
title = "MDBook demo"

[output.html]
theme = "light"

这里的 src 项指定了源码目录,可以替换为 docs 或其他名称。

src 目录存储 Markdown 源文件,特别地, SUMMARY.md 文件定义了目录结构,示例内容如下:

# Summary

- [Chapter 1](./chapter_1.md)

chapter_1.md 是章节内容,它被 SUMMARY.md 所引用。

构建和预览

在完成文档内容的编写和调整后,进入项目根目录,运行以下命令进行构建:

mdbook build

这将在 book 目录下生成静态网页,可以通过 -d 参数指定输出目录。

为了更便捷地预览文档,可以启动本地服务器进行交互式查看:

mdbook serve

默认服务器在 localhost:3000 上启动。也可以通过以下命令指定不同的参数:

mdbook serve -p 8080 -n 0.0.0.0 -d book

总结

以上,我们介绍了 MDBook 的基本使用方法,并演示了一个简单的构建过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2241150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣 LeetCode 28. 找出字符串中第一个匹配项的下标(Day4:字符串)

解题思路: KMP算法 需要先求得最长相等前后缀,并记录在next数组中,也就是前缀表,前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。 next[ j - 1 ] 记录了 …

海思3403对RTSP进行目标检测

1.概述 主要功能是调过live555 testRTSPClient 简单封装的rtsp客户端库,拉取RTSP流,然后调过3403的VDEC模块进行解码,送个NPU进行目标检测,输出到hdmi,这样保证了开发没有sensor的时候可以识别其它摄像头的视频流&…

Python学习26天

集合 # 定义集合 num {1, 2, 3, 4, 5} print(f"num:{num}\nnum数据类型为:{type(num)}") # 求集合中元素个数 print(f"num中元素个数为:{len(num)}") # 增加集合中的元素 num.add(6) print(num) # {1,2,3,4,5,6} # 删除…

图论-代码随想录刷题记录[JAVA]

文章目录 前言深度优先搜索理论基础所有可达路径岛屿数量岛屿最大面积孤岛的总面积沉默孤岛Floyd 算法dijkstra(朴素版)最小生成树之primkruskal算法 前言 新手小白记录第一次刷代码随想录 1.自用 抽取精简的解题思路 方便复盘 2.代码尽量多加注释 3.记录…

测试自动化如何和业务流程结合?

测试自动化框架固然重要,但是最终自动化的目的都是为了业务服务的。 那测试自动化如何对业务流程产生积极影响? 业务流程的重要性 测试自动化项目并非孤立存在,其生命周期与被测试的应用程序紧密相关。项目的价值在于被整个开发团队所使用&a…

大模型基础BERT——Transformers的双向编码器表示

大模型基础BERT——Transformers的双向编码器表示 整体概况 BERT:用于语言理解的深度双向Transform的预训练 论文题目:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding Bidirectional Encoder Representations from…

Leetcode 56-合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 //按左边界排序 //startintervals[i][0],endintervals…

【golang-技巧】-线上死锁问题排查-by pprof

1.背景 由于目前项目使用 cgo golang 本地不能debug, 发生死锁问题,程序运行和期待不一致,通过日志排查可以大概率找到 阻塞范围,但是不能找到具体问题在哪里,同时服务器 通过k8s daemonset 部署没有更好的方式暴露端口 获取ppr…

7天用Go从零实现分布式缓存GeeCache(总结)

1. Lru包 1.1 lru算法简要概述 (作者:豆豉辣椒炒腊肉/链接:https://juejin.cn/post/6844904049263771662) LRU算法全称是最近最少使用算法(Least Recently Use),广泛的应用于缓存机制中。当缓…

oracle查询字段类型长度等字段信息

1.查询oracle数据库的字符集 SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER NLS_CHARACTERSET; 2.查询字段长度类型 SELECT * FROM user_tab_columns WHERE table_name user AND COLUMN_NAME SNAME 请确保将user替换为您想要查询的表名。sname为字段名 这里的字…

前端面试笔试(一)

目录 一、数据结构算法等综合篇 1.直接插入排序,有n个元素待排序,则最多进行多少次比较 2.软件测试中评估网络性能的关键指标有哪些 3.哈希查找 4.内存保护 二、代码输出篇 1.promise中throw new Error输出 2.Promise.all 3.this关键字,obj.get…

iOS 18.2 重磅更新:6个大动作

根据外媒报道,iOS 18.2迎来重磅更新,将带来6个大动作,这是一次非常实用的更新。不过要注意的是,其中涉及到AI的功能,国行iPhone 暂时还不可用,只能等审核通过了。 1,Safari下载进度 过去通过S…

HBase理论_HBase架构组件介绍

近来有些空闲时间,正好最近也在开发HBase相关内容,借此整理一下学习和对HBase组件的架构的记录和个人感受,付出了老夫不少心血啊,主要介绍的就是HBase的架构设计以及我的拓展内容。内容如有不当或有其他理解 matirx70163.com HB…

【Spring AOP 原理】

首先AOP跟OOP(面向对象编程)、IOC(控制反转)一样都是一种编程思想 跟OOP不同, AOP是面向切面编程, 面对多个不具备继承关系的对象同时需要引入一段公共逻辑的时候, OOP就显得有点笨重了, 而AOP就游刃有余, 一个切面可以横跨多个类或者对象去执行公共逻辑, 极大的提升了开发效率…

第六节、Docker 方式部署指南 github 上项目 mkdocs-material

一、简介 MkDocs 可以同时编译多个 markdown 文件,形成书籍一样的文件。有多种主题供你选择,很适合项目使用。 MkDocs 是快速,简单和华丽的静态网站生成器,可以构建项目文档。文档源文件在 Markdown 编写,使用单个 YAML 配置文件配置。 MkDocs—markdown项目文档工具,…

论文 | The Capacity for Moral Self-Correction in LargeLanguage Models

概述 论文探讨了大规模语言模型是否具备“道德自我校正”的能力,即在收到相应指令时避免产生有害或偏见输出的能力。研究发现,当模型参数达到一定规模(至少22B参数)并经过人类反馈强化学习(RLHF)训练后&…

初识GIS

文章目录 一、什么叫地理信息1、定义2、主要特点3、分类 二、什么叫GIS1、定义2、GIS对空间信息的储存2.1、矢量数据模型2.2、栅格数据模型 3、离散栅格和连续栅格的区别 三、坐标系统1、为什么要存在坐标系统?2、地理坐标系2.1、定义与特点2.2、分类 3、投影坐标系…

通过 HTTP 获取远程摄像头视频流并使用 YOLOv5 进行目标检测

在本教程中,我们将通过 HTTP 获取远程摄像头视频流,并使用 YOLOv5 模型进行实时目标检测。我们会利用 Python 的 OpenCV 库获取视频流,使用 YOLOv5 模型进行目标检测,并使用多线程来提高实时性和效率。 项目地址:like…

Android Framework AMS(17)APP 异常Crash处理流程解读

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读APP Crash处理。关注思维导图中左上侧部分即可。 本章节主要是对Android的APP Crash处理有一个基本的了解。从进程启动到UncaughtH…

javaWeb小白项目--学生宿舍管理系统

目录 一、检查并关闭占用端口的进程 二、修改 Tomcat 的端口配置 三、重新启动 Tomcat 一、javaw.exe的作用 二、结束javaw.exe任务的影响 三、如何判断是否可以结束 结尾: 这个错误提示表明在本地启动 Tomcat v9.0 服务器时遇到了问题,原因是所需…