从0到1,用Rust轻松制作电子书

news2024/11/7 7:41:23

我之前简单提到过用 Rust 做电子书,今天分享下如何用Rust做电子书。制作电子书其实用途广泛,不仅可以用于技术文档(对技术人来说非常方便),也可以制作用户手册、笔记、教程等,还可以应用于文学创作。

如果你有想法写小说或者做知识付费,电子书也是一个不错的切入点。特别是知识付费领域,通过小范围试水电子书,收集读者反馈,进一步打磨内容,最后也可以出版成书。

好了,有点扯远了,我们重点先说下怎么用Rust快速做电子书吧,简单方便几分钟就可以搭起来。

1. 环境准备

我们准备用Rust来创建电子书,首先,需要安装有Rust的环境,Rust环境安装也比较简单打开官方地址,复制安装命令安装即可。

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

其次,需要对Markdown语法了解,如果不了解的可以看下,强烈推荐所有人来学。很多精美的排版和插图都可以通过md语法来实现,现在更有md的编辑器,稍微了解配合编辑器就能如虎添翼了。

如果有不熟悉markdown可以到这个网站来学习了解下,https://www.markdownguide.org/ ,也可以其他中文网站了解。

图片

2. 安装使用

介绍下我们做电子书的主角mdBook,一款由rust实现的开源软件,可以进行文档生成,搜索,语法高亮,生产的电子书可以支持在PC、和移动设备打开使用。

通过cargo来安装

cargo install mdbook

安装成功,可以进行创建

mdbook init my-first-book

创建过程中可以起名字,创建完成后到该文件目录下

cd my-first-book
mdbook serve --open

打开地址http://localhost:3000/ ,可以看到创建的电子书模板已经打开了,尽管内容还是空的,但电子书的结构已经有了,左边导航,右边文章内容,以及搜索框。

图片

剩下就是我们写电子书的内容了。

3. 写电子书内容

在创建的电子书工程下,会看到src文件目录、book.toml配置文件、book目录,我们先关注电子书的内容src目录

├── SUMMARY.md
└── chapter_1.md

SUMMARY.md 里打开可以看到就是左侧的导航配置,比如对应的章节配置在这个文件里,chapter_1.md就是对应的章节内容

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

可以对chapter_1.md进行内容写作,就可以形成对应的电子书的内容了。

比如这个我复制了个内容,修改了章节命名,然后重新刷新即可看到内容。

图片

4. 部署

电子书制作完后,编译后会发现在book的目录下会有编译好的文件,可以通过GitHub Pages上这样完全可以免费,也可以支持远程别人打开和阅读。

这个是我之前部署的一个Rust精简笔记电子书:

图片

回头再介绍下部署吧,有兴趣的也可以看官方文档,部署也比较简单,可以通过脚本结合来。

PS: 也欢迎大家评论和交流~ 更多文章也可关注微信公号:良技漫谈

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

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

相关文章

私有化视频平台EasyCVR视频汇聚平台接入RTMP协议推流为何无法播放?

私有化视频平台EasyCVR视频汇聚平台兼容性强、支持灵活拓展,平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 有用户反馈,项目现场使用RTMP协议接入EasyCVR平台,但是视频却不…

51单片机应用开发(进阶)---外部中断(按键+数码管显示0-F)

实现目标 1、巩固数码管、外部中断知识 2、具体实现:按键K4(INT1)每按一次,数码管从0依次递增显示至F,再按则循环显示。 一、共阳数码管 1.1 共阳数码管结构 1.2 共阳数码管码表 共阳不带小数点0-F段码为&#xff…

【简道云 -注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度

文章目录 box-sizing: border-box; 的含义默认盒模型 (content-box)border-box 盒模型 在微信小程序中的应用示例 在微信小程序中,CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度。具体来说, box-sizing: border-box; 会改…

设计模式基础概念(行为模式):责任链模式(Chain Of Responsibility)

概述 责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。 该模式建议你将这些处理者连成一条链。 链上的每个处理者都有一个成员变量来保存对于…

从入门到了解C++系列-----类与对象(中)

首言 这是我对于在学习类与对象时的一些思考与总结。主要去讲解C自主实现的默认构造函数。 1. 6大默认成员函数 1.1 是什么 默认的成员函数,是由c 编译器自动生成的。我们即使不定义,也可以调用。有默认构造函数、默认拷贝构造函数、默认析构函数、赋值重…

快速生成高质量提示词,Image to Prompt 更高效

抖知书老师推荐: 随着 AI 技术的不断发展,视觉信息与语言信息之间的转换变得越来越便捷。在如今的数字化生活中,图像与文字的交互需求愈发旺盛,很多人都希望能轻松将图像内容直接转化为文本描述。今天我们来推荐一款实用的 AI 工…

SCSI驱动与 UFS 驱动交互概况

SCSI子系统概况 SCSI(Small Computer System Interface)子系统是 Linux 中的一个模块化框架,用于提供与存储设备的通用接口。通过 SCSI 子系统,可以支持不同类型的存储协议(如 UFS、SATA、SAS)&#xff0c…

5. 数据库连接池实现

WebServer 类中的 sql_pool() 方法,用于初始化数据库连接池并设置用户数据。 void WebServer::sql_pool() {/* 初始化数据库连接池 */m_connPool connection_pool::GetInstance();m_connPool->init("localhost", m_user, m_passWord, m_databaseName,…

Unity BesHttp插件修改Error log的格式

实现代码 找到插件的 UnityOutput.cs 然后按照需求替换为下面的代码即可。如果提示 void ILogOutput.Flush() { } 接口不存在,删除这行代码即可。 using Best.HTTP.JSON.LitJson; using System; using System.Collections.Generic; using UnityEngine; using Syst…

Kubernetes实战——DevOps集成SpringBoot项目

目录 一、安装Gitlab 1、安装并配置Gitlab 1.1 、下载安装包 1.2、安装 1.3、修改配置文件 1.4、更新配置并重启 2、配置 2.1、修改密码 2.2、禁用注册功能 2.3、取消头像 2.4、修改中文配置 2.5、配置 webhook 3、卸载 二、安装镜像私服Harbor 1、下载安装包 2、…

【移动应用开发】访问网络

目录 一、运行截图 二、源代码 1. WebView的简单使用 ① activity_main.xml ② MainActivity.kt ③ AndroidManifest.xml 2. 使用OkHttp访问以下接口,获取Aspirin化合物的JSON格式数据 ① activity_okhttp.xml ② OKhttpActivity ③ 导入依赖 3. 使用GSO…

软件工程--需求分析与用例模型

面向对象分析(ObjectOrientedAnalysis,简称OOA) 分析和理解问题域,找出描述问题域所需的类和对象,分析它们的内部构成和外部关系,建立独立于实现的OOA模型,暂时忽略与系统实现有关的问题。 主要使用UML中的以下几种图…

Android中同步屏障(Sync Barrier)介绍

在 Android 中,“同步屏障”(Sync Barrier)是 MessageQueue 中的一种机制,允许系统临时忽略同步消息,以便优先处理异步消息。这在需要快速响应的任务(如触摸事件和动画更新)中尤为重要。 在 An…

MyBatis-Plus:简化 CRUD 操作的艺术

一、关于MyBatis-Plus 1.1 简介 MyBatis-Plus 是一个基于 MyBatis 的增强工具,它旨在简化 MyBatis 的使用,提高开发效率。 ​ ‍ ‍ ‍ ​ ‍ 关于Mybatis 简介 MyBatis 是一款流行的 Java 持久层框架,旨在简化 Java 应用程序与数…

ECharts饼图-圆角环形图,附视频讲解与代码下载

引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个饼图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供详…

正则表达式匹配日期格式

前言 这里有sql文本,是从数据库中拷贝出来的,希望重新执行的时候createTime和updateTime都统一设置成当前日期。 利用正则表达式结合文本编辑器,就能全局替换了 (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) 替换结果如下

学习伊圣雨老师的 epoll 编程

(1)书里提出了疑问,epoll 函数的工作方式,区分为水平触发与边缘触发 : (2) 谢谢

3.2K+ Star!OpenLLMetry:一个开源的LLM应用可观测性工具

OpenLLMetry 简介 OpenLLMetry[1] 是一个基于OpenTelemetry的开源可观测性工具,专为LLM(Large Language Models,大型语言模型)应用设计。 它提供了一套扩展,可以帮助开发者全面监控和管理他们的LLM应用。 项目特点 主…

C# 编程语言学习教程

C# 编程语言学习教程 目录 C# 简介 1.1 什么是 C#1.2 C# 的特点1.3 C# 的应用领域 环境搭建 2.1 安装 Visual Studio2.2 创建第一个 C# 项目 基础语法 3.1 数据类型3.2 控制结构3.3 数组与字符串 面向对象编程 4.1 类与对象4.2 继承与多态4.3 接口与抽象类 常用库与框架 5.1 .…