Sphinx + Readthedocs 避坑速通指南

news2024/12/28 19:11:16

博主在学习使用 SphinxRead the docs 的过程中, 碰到了许多奇葩的 bug, 使得很简单的任务花费了很长的时间才解决,现在在这里做一个分享,帮助大家用更少的时间高效上线文档的内容。

总的来说, 任务分为两个部分:

  • 使用 Sphinx 生成文档
  • 文档托管到 Read the docs 平台

准备

整个过程基于 python 实现, 推荐使用 Anoconda 能够创建管理独立的虚拟环境【 conda使用方法】,这样之后在配置文件的时候会方便很多。
在这里插入图片描述


使用 Sphinx 生成文档

掌握几个基本语句:

  1. 安装需要的库: pip install sphinx
  2. 快速创建项目:sphinx-quickstart
  3. 独立的源文件和构建目录(y/n) [n]: 个人填 y
  4. 接下来所填项目示例:

    项目名称: Test
    作者名称: 摸鱼仙人
    项目发行版本 [ ]: v1

  5. 项目语种 [en]: zh_CN, 英语则填写 EN

在这之后项目基本创建完成,项目框架如图所示:
在这里插入图片描述
需要关注的主要是 **source** **build** 两个文件夹。

  • source: 所有的需要的文档都要放在里面 (.rst| .md)
  • build:所有生成的文件都会保存在里面

⭐ 需要配置**conf.py** **index.rst** 两个文件

---* conf.py *---
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
import sys
import os
# 此处在 sphinx-quickstart 中都进行了填写,一般无需修改
project = 'XXXX'
copyright = '2024, 摸鱼仙人'
author = 'Jin'
release = 'v1'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
# 此处为项目文件地址
project_path = "F:\XXX"
sys.path.insert(0, os.path.abspath("../.."))

# 此处为导入的 md 文件需要的配置
extensions = ['sphinx_markdown_tables', 'm2r']
source_suffix = [".rst", ".md"]


templates_path = ['_templates']
exclude_patterns = []
# 此处为项目使用语言
language = 'zh_CN'

# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']
---* index.rst *---

.. XXXXXX documentation master file, created by
   sphinx-quickstart on Fri Mar 22 07:52:42 2024.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

XXXXX
=========================================

.. toctree::
   :maxdepth: 3
   :caption: XXXX

    ch01_数学基础 <ch01_数学基础/ch01_数学基础.md>


Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

需要熟练掌握语法, 由于内容过多, 本处不再赘述.有机会再开一篇详细展开. 配置内容大致相似,修改部分需要的名称即可.

注意:
.. toctree::
   :maxdepth: 3
   :caption: XXXX
<!-- 此处必须空一行 -->
    ch01_数学基础 <ch01_数学基础/ch01_数学基础.md>

该处的格式

掌握两句代码,反复使用:

  • make clean: 清除build生成的文件
  • make html: 生成html文件

build 文件夹 中, 可以找到 index.html, 可以通过该文件查看生成的结果

在这里插入图片描述


没有问题之后, 在 Github 上创建仓库, 将目前文件夹中所有的内容推送上去.

  • 配置 .gitignore 文件
---* .gitignore *---
 build/

托管到 Read the docs 平台

  • Read the docs 平台: Read the docs

登录平台,使用 Github 账号进行登录

在这里插入图片描述
点击 导入一个项目 就可以将 Github 中的项目的文档托管过来, 以后文档的更新只需要在Github 平台上传,此处的托管能够自动的跟进更新

注意:
导入前需要创建 .readthedocs.yaml 文件进行配置, 更新上传在 Github 中

# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
  os: ubuntu-22.04
  tools:
    python: "3.9"
    # You can also specify other tool versions:
    # nodejs: "19"
    # rust: "1.64"
    # golang: "1.19"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
  configuration: source/conf.py

# Optionally build your docs in additional formats such as PDF and ePub
# formats:
#    - pdf
#    - epub

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
   install:
   - requirements: docs/requirements.txt

点击导入后有几处地方容易导致报错, 需要注意:

  • 各个模块的内容需要顶格写,否则会出现报错

requirements.txt 文件生成:

在虚拟环境中使用 pip freeze > requirements.txt 能够自动生成配置的库的相关参数, 有时候 txt 文本中会出现一些奇怪的内容需要删除:
在这里插入图片描述
在这里插入图片描述
因此,开始时创建一个干净的虚拟环境十分有利于任务的快速推进.

导入构建后,如果显示如图则生成成功. 如果为红色, 显示 failed 则生成失败.
在这里插入图片描述
单击 build 则会在 构建 部分重新运行
在这里插入图片描述
在这里插入图片描述

通过此处的网址可以直接查看文档的地址:

在这里插入图片描述


参考资料:

  1. Sphinx + Read the Docs 从懵逼到入门
  2. 使用Read the Docs托管文档
  3. Sphinx 学习优质教程

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

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

相关文章

C#、.NET版本、Visual Studio版本对应关系及Visual Studio老版本离线包下载地址

0、写这篇文章的目的 由于电脑的环境不同&#xff0c;对于一个老电脑找到一个适配的vscode环境十分不易。总结一下C#、.NET、Visual Studio版本的对应关系&#xff0c;及各个版本Visual Studio的下载地址供大家参考 1、C#、.NET版本、Visual Studio版本对应关系如下 2、Visua…

C++初阶:string类相关练习题

目录 1. 字符串相加2. 反转字母3. 字符串中唯一字母4. 字符串中最后一个单词5. 验证回文串6. 反转字符II7. 反转字符串中的单词8. 字符串相乘 1. 字符串相加 题目信息&#xff1a; 题目连接&#xff1a; 字符串相加 class Solution { public:string addStrings(string num1, s…

PHP自动获取视频时长的方法

摘要 最近在给客户开发短视频项目模块中遇到自动获取上传视频的时长并用于外部展示的需求。 刚开始想到用比较笨的方法&#xff0c;就是上传之前手动写入视频文件的大小&#xff0c;无奈嫌麻烦&#xff0c;寻求其它方法。 也是一个比较笨的方法—— ffmpeg 通过下载 ffmpeg&am…

vue的优缺点有那些 组件常用的有那些?

优点&#xff1a; 组件化开发&#xff0c;提升效率&#xff0c;方便复用&#xff0c;便于协同开发单页面路由易于结合其他的第三方库丰富的api方法轻量高效,虚拟DOMMVVM&#xff0c;数据驱动视图轻量级的框架 缺点&#xff1a; 缺少高阶教程和文档生态环境不如angular和re…

ChatGPTGPT4科研应用、数据分析与机器学习、论文高效写作、AI绘图技术教程

原文链接&#xff1a;ChatGPTGPT4科研应用、数据分析与机器学习、论文高效写作、AI绘图技术教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598506&idx2&sn14f96667bfbeba5f51366a1f019e3d64&chksmfa82004dcdf5895bba2784ba10f6715f6f5e4c59c9b1…

ElasticSearch之数据建模

写在前面 本文看下es数据建模相关的内容。 1&#xff1a;什么是数据建模 数据建模是对真实数据的一种抽象&#xff0c;最终映射为计算机形式的表现。其包括如下三个阶段&#xff1a; 1&#xff1a;概念模型 2&#xff1a;逻辑模型 3&#xff1a;数据模型2&#xff1a;es数据…

此站点正在尝试打开 ,chrome/edge 允许http网站打开url schema

正常https链接会有首次允许选项 但http没有&#xff0c;每次都会弹出&#xff0c;非常烦人。 Chrome / Edge 配置 地址栏输入 chrome://flags/搜索Insecure origins treated as secure, 配置允许网站&#xff0c;需要协议和端口再次跳转会显示始终允许选项

(附源码)基于Spring Boot和Vue的前后端分离考研资料分享平台的设计与实现

前言 &#x1f497;博主介绍&#xff1a;✌专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2024年Java精品实战案例《100套》 &#x1f345;文末获取源码联系&#x1f345; &#x1f31…

【Godot4.2】2D辅助类Geometry2D入门

概述 Godot4.2提供了一个名叫Geometry2D的类。它提供了一些用于2D几何图形如多边形&#xff08;Polygon&#xff09;、折线&#xff08;PolyLine&#xff09;相关的函数&#xff0c;可以方便实现诸如多边形与多边形或多边形与折线的布尔运算、求交点等。 这是一个非常强大的2…

目标控制器数字孪生系统的研究与设计

文章来源&#xff1a;铁路计算机应用,2023,32(10):36-41. 作者&#xff1a;许婧&#xff0c;杨硕&#xff0c;季志均 摘要&#xff1a;随着目标控制器&#xff08;OC&#xff0c;Object Controller&#xff09;系统在轨道交通领域的推广应用&#xff0c;其硬件投入较高、研发…

css background-color属性无效

因为工作需要&#xff0c;最近在帮H5同事开发几个页面&#xff0c;在使用H5进行如下布局的时候&#xff0c;发现设置 background-color为白色无效。 代码如下&#xff1a; <div class "bottomBar"><div style"position: fixed; left: 20px;">…

解决arco-design下拉框回显id的问题

问题描述 下拉框回显选项中没有的选项&#xff0c;就会出现以下情况&#xff0c;只能把uid回显上去 解决方案 使用ui框架自带的属性fallback-option 用法 按以上操作&#xff0c;即可解决选择框回显uid问题

软考91-上午题-【操作系统】-线程

一、线程的定义 传统的进程有两个基本属性: 可拥有资源的独立单位&#xff1b;可独立调度和分配的基本单位。 引入线程的原因是进程在创建、撤销和切换中&#xff0c;系统必须为之付出较大的时空开销&#xff0c;故在系统中设置的进程数目不宜过多&#xff0c;进程切换的频率…

Day43:WEB攻防-PHP应用SQL注入符号拼接请求方法HTTP头JSON编码类

目录 PHP-MYSQL-数据请求类型 PHP-MYSQL-数据请求方法 PHP-MYSQL-数据请求格式 知识点&#xff1a; 1、PHP-MYSQL-SQL注入-数据请求类型 2、PHP-MYSQL-SQL注入-数据请求方法 3、PHP-MYSQL-SQL注入-数据请求格式 PHP-MYSQL-数据请求类型 SQL语句由于在黑盒中是无法预知写法的…

基于python+vue的BBS论坛系统flask-django-nodejs-php

本系统为用户而设计制作BBS论坛系统&#xff0c;旨在实现BBS论坛智能化、现代化管理。本BBS论坛自动化系统的开发和研制的最终目的是将BBS论坛的运作模式从手工记录数据转变为网络信息查询管理&#xff0c;从而为现代管理人员的使用提供更多的便利和条件。使BBS论坛系统数字化、…

使用阿里CICD流水线打包Vue项目到阿里的docker镜像私仓,并自动部署到服务器启动服务

文章目录 使用阿里CICD流水线打包Vue项目到阿里的docker镜像私仓&#xff0c;并自动部署到服务器启动服务1、功能实现原理大家可以看我之前的两篇文章2、打包vue项目和打包咱们的Java项目过程差不多相同&#xff0c;大家可以看着上面的Java打包过程进行实验&#xff0c;下面是v…

关于短群签名论文阅读

参考文献为2004年发表的Short Group Signatures 什么群签名&#xff1f; 群签名大致就是由一组用户组成一个群&#xff0c;其中用户对某条消息的签名&#xff0c;改签名不会揭示是哪一个用户签署的&#xff0c;签名只能表明该消息确实是来自该群的签名。对于群还有一个群管理者…

VTK9.2.0+Qt5.14.0 绘制点云

背景 为了显示结构光重建后的点云&#xff0c;开发QT5.14.0VTK9.2.0的上位机软件&#xff0c;用于对结构光3D相机进行控制&#xff0c;并接收传输回来的3D数据&#xff0c;显示在窗口中。 配置QT和VTK VTK9.2.0下载源码&#xff0c;用Cmake编译&#xff0c;编译好的VTK9.2.0…

Nacos介绍和Eureka的区别

Nacos&#xff08;全称为 Alibaba Cloud Nacos&#xff0c;或简称为 Nacos&#xff09;是一个开源的分布式服务发现和配置管理系统。它由阿里巴巴集团开发并开源&#xff0c;旨在帮助开发人员简化微服务架构下的服务注册、发现和配置管理。 1、Nacos 提供了以下主要功能&#…