【小沐学Python】Python实现在线电子书制作(Sphinx + readthedocs + github + Markdown)

article/2025/11/11 7:15:42

文章目录

  • 1、简介
  • 2、安装
  • 3、创建测试工程
  • 4、项目文件结构
  • 5、编译为本地文件
  • 6、编译为http服务
  • 7、更改样式主题
  • 8、支持markdown
  • 9、修改文档显示结构
  • 10、项目托管到github
  • 11、部署到ReadtheDocs
  • 结语

1、简介

Sphinx 是一个 文档生成器 ,您也可以把它看成一种工具,它可以将一组纯文本源文件转换成各种输出格式,并且自动生成交叉引用、索引等。也就是说,如果您的目录包含一堆 reStructuredText 或 Markdown 文档,那么 Sphinx 就能生成一系列HTML文件,PDF文件(通过LaTeX),手册页等。
在这里插入图片描述

Sphinx 专注于文档,尤其是 handwritten documentation ,然而,Sphinx 也可以用来生成博客、主页甚至书籍。Sphinx 的大部分功能来自于 reStructuredText ,它是一种纯文本标记格式,有着丰富的功能和 显著的扩展能力 。

2、安装

  • 本文开发环境:
    Windows系统
    python3环境

  • 安装Sphinx:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sphinx

在这里插入图片描述

3、创建测试工程

输入如下命令初始化工程:

mkdir SphinxDemo
cd SphinxDemo
sphinx-quickstart

然后会有如下的输出,需要根据提示输入项目名称、作者、版本号、语言等信息。
在这里插入图片描述
在这里插入图片描述

4、项目文件结构

项目创建完成后,可以看到如下的目录结构:
在这里插入图片描述

|-- build       <--------  生成文件的输出目录
|-- make.bat    <--------  Windows 命令行中编译用的脚本
|-- Makefile    <--------  编译脚本,make 命令编译时用
`-- source      <--------  文档源文件|-- conf.py     <--------  进行 Sphinx 的配置,如主题配置等|-- index.rst   <--------  文档项目起始文件,用于配置文档的显示结构|-- _static     <--------  静态文件目录, 比如图片等`-- _templates  <--------  模板目录

这里先简单说明一下各个文件的作用:

  • build:生成的文件的输出目录
  • source: 存放文档源文件
  • _static:静态文件目录,比如图片等
  • _templates:模板目录
  • conf.py:进行 Sphinx 的配置,如主题配置等
  • index.rst:文档项目起始文件,用于配置文档的显示结构
  • cmd.bat:这是自己加的脚本文件(里面的内容是‘cmd.exe’),用于快捷的打开windows的命令行
  • make.bat:Windows 命令行中编译用的脚本
  • Makefile:编译脚本,make 命令编译时用

其中index.rst内容默认如下:

.. 小沐日记 documentation master file, created bysphinx-quickstart on Sun Jun 11 10:29:33 2023.You can adapt this file completely to your liking, but it should at leastcontain the root `toctree` directive.Welcome to 小沐日记's documentation!
====================================.. toctree:::maxdepth: 2:caption: Contents:Indices and tables
==================* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

5、编译为本地文件

执行如下命令:

make html

在这里插入图片描述
居然报错,有没有天理呢。哈哈。
换一种写法如下:

./make html

在这里插入图片描述
自动生成如下这些文件:
在这里插入图片描述
可以在浏览器中预览一下:

file:///C:/Users/tomcat/Desktop/SphinxDemo/build/html/index.html

在这里插入图片描述

6、编译为http服务

上面使用make html的方式编译,编译完后需要打开html文件来查。
还有一种HTTP服务的方式,可以在浏览器器中通过ip地址来查看,该方式需要安装自动build工具:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sphinx-autobuild

在这里插入图片描述
然后使用如下编译指令进行编译:

sphinx-autobuild source build/html

在这里插入图片描述
然后可以到浏览器中,输入127.0.0.1:8000,进行预览如下:
在这里插入图片描述

7、更改样式主题

上面的测试效果,使用的是默认的主题alabaster,如果想安装其它的主题,可以先到Sphinx的官网https://sphinx-themes.org/查看:

在这里插入图片描述
这里选用一个较为常用的主题Read the Docs,安装这个主题首先需要在python中进行安装,命令如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sphinx_rtd_theme

在这里插入图片描述
然后修改conf.py 文件,找到 html_theme 字段,修改为

#html_theme = 'alabaster'
html_theme = 'sphinx_rtd_theme'

在这里插入图片描述
再次编译,预览如下:

sphinx-autobuild source build/html

在这里插入图片描述

8、支持markdown

这里安装markdown支持工具。Sphinx默认只支持reST格式的文件。
如果相要使用markdown格式的文档,还要安装markdown支持工具,命令如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple recommonmark

在这里插入图片描述
若要使用markdown的表格,还要安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sphinx_markdown_tables

在这里插入图片描述
然后,还要修改conf.py 文件,找到 extensions字段,修改为:

#extensions = []
extensions = ['recommonmark','sphinx_markdown_tables']

在这里插入图片描述

支持markdown后,文档文件可以使用markdown格式,但文档的配置文件index.rst还要使用reST格式

9、修改文档显示结构

修改文档结构,需要修改index.rst文件。

index.rst默认内容如下:

.. 小沐日记 documentation master file, created bysphinx-quickstart on Sun Jun 11 10:29:33 2023.You can adapt this file completely to your liking, but it should at leastcontain the root `toctree` directive.Welcome to 小沐日记's documentation!
====================================.. toctree:::maxdepth: 2:caption: Contents:Indices and tables
==================* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

index.rst修改内容如下:

.. 小沐日记 documentation master file, created bysphinx-quickstart on Sun Jun 11 10:29:33 2023.You can adapt this file completely to your liking, but it should at leastcontain the root `toctree` directive.Welcome to 小沐日记's documentation!
====================================.. toctree:::maxdepth: 3:caption: Contents:西游记/indexIndices and tables
==================* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

在这里插入图片描述

  • 其中“source\西游记\index.rst”内容如下:
西游记
=================================.. toctree:::maxdepth: 1第一回、灵根育孕源流出 心性修持大道生/index第二回、悟彻菩提真妙理 断魔归本合元神/index第三回、四海千山皆拱伏 九幽十类尽除名/index
  • 其中“source\西游记\第一回、灵根育孕源流出 心性修持大道生\index.rst”内容如下:
第一回、灵根育孕源流出 心性修持大道生
=======================================

其他几个类似如上。再次编译,预览如下:

sphinx-autobuild source build/html
  • 第一级页面:
    在这里插入图片描述
  • 第二级页面:
    在这里插入图片描述
  • 第三级页面:
    在这里插入图片描述

10、项目托管到github

首先在github上创建仓库,比如yxy_note,然后建立本地仓库:

echo "# yxy_note" >> README.md
git init
# git add README.md
# git add -A
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/fxyublib/yxy_note.git
git push -u origin main

命令执行过程如下:
在这里插入图片描述
github网站的内容更新如下:
在这里插入图片描述

11、部署到ReadtheDocs

ReadtheDocs平台(https://readthedocs.org/)
打开页面:https://readthedocs.org/dashboard/
在这里插入图片描述

选择手动导入一个项目:
在这里插入图片描述
设置项目的基本信息如下:
在这里插入图片描述
然后点击按钮“Build version”编译代码生成文档网页。
在这里插入图片描述
居然构建失败了。
在这里插入图片描述
原因是ReadTheDocs的python环境没有对应的第三方库文件,需要在项目根目录执行如下命令生成requirements.txt,这样ReadTheDocs会自动安装对应的插件依赖。
命令行执行如下命令:

python3 -m pip freeze > requirements.txt
  • requirements.txt:
sphinx-markdown-tables

在这里插入图片描述
再次编译如下:
在这里插入图片描述
预览生成的文档如下:
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!


http://chatgpt.dhexx.cn/article/AWnyvF4H.shtml

相关文章

python编程入门电子书-Python3零基础教材电子书合集

Python3零基础教材电子书合集&#xff0c;传送门&#xff1a;https://www.52pojie.cn/thread-676318-1-1.html 一、《Python编程从入门到实践》 链接&#xff1a;https://pan.baidu.com/s/1o9wJq0y 密码&#xff1a;12od 这书楼主现在也在看&#xff0c;讲的很细&#xff0c;…

学习Python必看的经典书籍(附电子书)

哈喽&#xff0c;我是牙儿 今天给大家推荐几本经典的Python书籍 一起来看看都有哪些吧~ 1 《Python学习手册&#xff08;第4版&#xff09;》 这本书全面、深入地介绍了 Python 语言&#xff0c;不管你是编程新手还是 Python 初学者&#xff0c;它将帮助你快速实现使用 Pyt…

超全的Python完全版电子书.pdf !从基础到爬虫、分析等高级应用,限时下载

python3.11即将于下半年发布&#xff0c;新的版本速度提升2倍&#xff0c;以弥补与其他编程语言在速度上的缺陷。可以预见Python语言在未来的应用范围会越来越广。 python学习方向建议&#xff1a; 如果你是本科及以下学历&#xff0c;建议你学习以下两个方向 1、爬虫。简单…

python入门经典电子书-推荐6本学习Python的免费电子书

便宜并不是没好货&#xff0c;这里的一些书籍已经被很多大学作为课本来使用&#xff0c;比如麻省理工的计算机科学与编程入门课程&#xff0c;加利福尼亚大学的编程思想课程都用到了下面的某(几)本书籍。 简明 简明 Python 教程是Swaroop C.H. 教授为Python初学者写的一本书。…

Python 开源电子书资源

转载自公众号&#xff1a;Mocun6 昨天给大伙儿送了书&#xff0c;留言区的篇幅占了整篇文章的一半&#xff0c;看来大家都想好&#xff08;把&#xff09;好&#xff08;我&#xff09;学&#xff08;掏&#xff09;习&#xff08;空&#xff09;。今天不送纸质书了&#xff0c…

100多本python书,免费电子版下载

推荐&#xff1a; 1、Coffee Break Python Slicing: 24 Workouts to Master Slicing in Python, Once and for All 切片&#xff08;Slicing&#xff09;是 Python 里非常有用的一个功能&#xff0c;属于 Python 开发人员最基本的技能之一。 如果你是初学者而且想了解 Slicin…

学习 Python 必看的书单(附电子书链接)

本文为你分享入门Python的必读书单。 学 Python 看什么书&#xff1f; 这是刚接触 Python 的朋友最疑惑的问题。 今天就结合自己入门时的学习历程和大家来聊一聊如何入门 Python&#xff0c;为了更有说服性一些&#xff0c;这里我把入门时看过的一些大佬推荐的书单进行了汇总…

python入门电子版-Python3零基础教材电子书合集

Python3零基础教材电子书合集,传送门:https://www.52pojie.cn/thread-676318-1-1.html 一、《Python编程从入门到实践》 链接:https://pan.baidu.com/s/1o9wJq0y 密码:12od 这书楼主现在也在看,讲的很细,建议大家零基础的从这书开始最好。个人觉得比《简明python教程》…

Python爬虫获取电子书资源实战

最近在学习Python&#xff0c;相对java来说python简单易学、语法简单&#xff0c;工具丰富&#xff0c;开箱即用&#xff0c;适用面广做全栈开发那是极好的&#xff0c;对于小型应用的开发&#xff0c;虽然运行效率慢点&#xff0c;但开发效率极高。大大提高了咱们的生产力。为…

全套Python零基础学习资料,电子书整理好了,想要进行技术提升,转行的自取!

今天分享Python入门级宝典 所有资料都是专业大佬总结整理出来的 Python的知识体系&#xff0c;从0开始学习Python看这一篇就够了! 《Python入门思维导图》 《看漫画学Python电子版》 《Python学习路线图》 《100道Python练习题》 《70个Python项目》 今天把这些分享给真…

【MATLAB统计分析与应用100例】案例015:matlab读取Excel数据,进行值聚类分析

1. 聚类分析轮廓图 2. matlab完整代码 %*****计算例9.1的距离矩阵 x = [1, 2, 6, 8, 11];

Python使用K-means聚类分析

Python使用K-means聚类分析 文章目录 Python使用K-means聚类分析介绍1.集群标签作为特征 一、k-均值聚类二、示例 - 加州住房2.KMeans 总结 介绍 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 本文将使用所谓的无监督学习算法。 无监督算法不使用目标&…

机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)

前言 k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 。 以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! MATLAB-30天带你从入门…

【MATLAB统计分析与应用100例】案例016:matlab读取Excel数据,进行样品系统聚类分析

1. 聚类分析结果 2. matlab完整代码 (1)读取数据,并进行标准化 [X,textdata] = xlsread(examp09_02.xls); % 从Excel文件中读取数据 X = zscore(X

数据挖掘的常用方法、功能和一个聚类分析应用案例

在今天的博文中&#xff0c;笔者整理了数据挖掘的常用方法和数据挖掘的重要功能(出自MBA智库百科)。当然&#xff0c;横看成岭侧成峰&#xff0c;这些常用方法和重要功能也许并不完全正确或完整。除此以外&#xff0c;笔者尝试学习了SMARTBI公司中的Smart Mining软件&#xff0…

基于R语言的层次聚类分析-【案例实操】-基本操作,一看就会

基本思想 每一个样本作为一类按照某一种方法进行距离度量&#xff0c;比如“欧氏距离”距离最短划为1类重复步骤2和3&#xff0c;每次减少一类&#xff0c;直至所有样本合成1类 案例 数据 这里用鸢尾花数据集作为实验数据 data(iris)# 载入数据 plot(iris)# 画图**注意&am…

python数据分类聚类案例_用Python进行系统聚类分析

在进行机器学习时,我们往往要对数据进行聚类分析,聚类,说白了就是把相似的样品点/数据点进行归类,相似度高的样品点会放在一起,这样一个样本就会被分成几类。而聚类分析也有很多种方法,比如分解法、加入法、有序样品的聚类、模糊聚类法以及系统聚类法等。而本文要介绍的就…

数据挖掘时功能和一个聚类分析应用案例

数据挖掘时功能和一个聚类分析应用案例 数据挖掘的常用方法和数据挖掘的重要功能(出自MBA智库百科)。当然&#xff0c;横看成岭侧成峰&#xff0c;这些常用方法和重要功能也许并不完全正确或完整。除此以外&#xff0c;笔者尝试学习了SMARTBI公司中的Smart Mining软件&#xff…

聚类案例分析全流程汇总

一、案例说明 1.案例背景 研究调查10名运动员的3项测试数据&#xff0c;其中三项分别是&#xff1a;肩宽/髋宽100、胸厚/胸围100、腿长/身长100。其中编号为4、6、8、9的4名运动员分别是蛙、自由、仰、蝶泳四种姿势的佼佼者。预计姿势按姿势分为蝶泳、仰泳、蛙泳、自由泳4类&…

同你分享1个完整的聚类分析案例

这篇文章从对聚类的感性认识到聚类算法的实现&#xff1a; k个初始中心点的选择&#xff0c;中心点的迭代&#xff0c;直到算法收敛得到聚类结果。 但有几个问题需要回答&#xff1a; 如何判断数据是否适合聚类&#xff1f;k类是如何确定的&#xff1f;遇到数据集小的时候&…