从0到1搭建文档库——sphinx + git + read the docs

sphinx + git + read the docs

目录

一、sphinx

1 sphinx的安装

2 本地构建文件框架

1)创建基本框架(生成index.rst ;conf.py)

conf.py默认内容

index.rst默认内容

2)生成页面(Windows系统下)

参考资料

3 编辑说明

1)图片:相对路径

2)文档编辑(官方)

3)页面主题:conf.py中配置

4 多语言支持

参考资料

二、git

1 git使用配置

2 本地推送远程仓库

3 github页面操作

4 git项目拉取

5 git本地提交到新分支

三、read the docs

1 导入时的项目名称设置

2 导入的项目要求

3 项目多版本管理

1) latest:默认分支(可在【管理】中配置)

2) 其他版本和github上的branch/release tag对应​编辑

4 文档自动更新的关联

5 离线格式下载

四、小结

1 三者关系

2 文档更新过程

注意



一、sphinx

1 sphinx的安装

先安装Python3环境

Download Python | Python.org

cmd中输入python显示内容即安装成功

再安装sphinx环境

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

2 本地构建文件框架

1)创建基本框架(生成index.rst ;conf.py)

创建一个空文件夹,输入

sphinx-quickstart

根据提示输入内容

sphinx-quickstart后的文件夹结构

  .
├── build
├── make.bat
├── Makefile
└── source├── conf.py├── index.rst├── _static└── _templates

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-informationproject = 'structrucshow'
copyright = '2024, test'
author = 'test'
release = 'v1.0'# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configurationextensions = []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-outputhtml_theme = 'alabaster'
html_static_path = ['_static']

index.rst默认内容
.. structrucshow documentation master file, created bysphinx-quickstart on Sun Apr  7 10:38:11 2024.You can adapt this file completely to your liking, but it should at leastcontain the root `toctree` directive.Welcome to structrucshow's documentation!
=========================================.. toctree:::maxdepth: 2:caption: Contents:Indices and tables
==================* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

2)生成页面(Windows系统下)

.\make html

然后点击build/html文件夹下打开index.html浏览页面;

 或者 

sphinx-autobuild source build/html

点击端口浏览,调整的时候页面会实变化,建议使用这个命令,方便实时查看变化。

参考资料

Sphinx+gitee+Read the Docs搭建在线文档系统 - 知乎

使用ReadtheDocs托管文档 - 知乎

3 编辑说明

1)图片:相对路径

2)文档编辑(官方)

reStructuredText 简介 — Sphinx 使用手册

 3)页面主题:conf.py中配置

一般用这个主题:

html_theme = 'sphinx_rtd_theme'

其他主题可以看官方文档

Read the Docs Sample — Read the Docs

4 多语言支持

小结:无法自动翻译,需要根据中文人工手动输入英文内容,然后进行转化(生成一个新的项目)。新项目导入到read the docs(注意设置语言),然后将翻译后的项目配置为原语言项目的子项目,在【翻译】中设置。

参考文档:【Open-Source】Sphinx+Read the Docs的多语言版本文档实现 - 知乎

关键语句(cr↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑)

先向docs/source/conf.py文件添加:

# multi-language docs
language = 'en'
locale_dirs = ['../locales/']   # path is example but recommended.
gettext_compact = False  # optional.
gettext_uuid = True  # optional.
# 先切到docs目录下
cd docs# 从./source/conf.py中读取文档设置,并调用从写好的rst或md的原文文档中在./build/gettext生成所有文档文件对应的.pot文件
sphinx-build -b gettext ./source build/gettext# 在docs目录下生成目标翻译语言的目录(示例目标翻译语言为zh_CN)
# 这条指令会在docs/locales的目录下生成po文件
# 后续需要在po文件中填入对应的翻译内容
sphinx-intl update -p ./build/gettext -l zh_CN# 翻译内容补充完成后,从写有中文翻译的.po文件和./source/conf.py中的设置来build中文文档,
# 生成的文档会在docs/build/html/zh_CN目录下
sphinx-build -b html -D language=zh_CN ./source/ build/html/zh_CN

将对应的翻译内容填入双引号内

参考资料

Sphinx + Read the Docs 从懵逼到入门 - 知乎

官网:reStructuredText 简介 — Sphinx 使用手册

多语言支持(官网的介绍文档):

国际化 — Sphinx documentation

Localization and Internationalization — Read the Docs user documentation

How to manage translations for Sphinx projects — Read the Docs user documentation

二、git

1 git使用配置

GitHub创建项目的流程_github创建项目步骤-CSDN博客

使用Git将本地文件夹同步至github_git 某些文件同步到新文件-CSDN博客

关键:第一次用git bash需要设置SSH免密,创建public key

2 本地推送远程仓库

git initgit add .git commit -m "描述你的提交"git push origin 分支名

本地项目首次关联git仓库需要提供ssh: git remote add origin git@githuhb.com:XXXXXXX/XXXX.git

参考资料:如何从 GitHub 上创建/克隆一个仓库、进行修改、提交并上传回 GitHub 新手保姆级教程 - 知乎

git拉取项目、提交代码简单教程_git拉取代码-CSDN博客

3 github页面操作

github上创建分支并合并到master_github分支合并到主干-CSDN博客

4 git项目拉取

创建空文件夹

git clone+项目地址(如果用的https://xxx 链接报错,可尝试使用项目的ssh地址)

cd 项目名称(进入项目)

git branch (查看当前分支)

git checkout [branch name] (切换到新的分支)

git checkout -b 分支名 (创建并切换到新分支)

git branch -D 分支名     (删除本地分支)

参考资料:git创建新分支,并将本地代码提交到新分支上_建立新的本地分支-CSDN博客

5 git本地提交到新分支

git checkout -b [branch name]   (创建分支的同时切换到该分支上

git add .

git commit -m "add my code to new branchB"

git push origin [branch name]

三、read the docs

1 导入时的项目名称设置

The name of the project. It has to be unique across all the service, so it is better if you prepend your username, for example {username}-rtd-tutorial.

2 导入的项目要求

必须要有.readthedocs.yaml文件

【示例】

项目层级结构示意图:

  .
├── .git
├── .gitignore
├── .readthedocs.yaml
├── requirements.txt
├── images
└── docs├── build├── index.rst├── make.bat├── Makefile└── source6    ├── _static├── _templates├── conf.py└── index.rst

.readthedocs.yaml文件内容:

version: "2"build:os: "ubuntu-22.04"tools:python: "3.10"python:install:- requirements: ./requirements.txtsphinx:configuration: docs/source/conf.py

requirements.txt文件内容

sphinx==7.1.2
sphinx-rtd-theme==1.3.0rc1

build文件不用同步到git仓库,.gitignore中内容

docs/build/

参考资料:Configuration file overview — Read the Docs user documentation

3 项目多版本管理

1) latest:默认分支(可在【管理】中配置)

2) 其他版本和github上的branch/release tag对应

4 文档自动更新的关联

在项目管理中勾选后,git有更新,read the docs会同步重新构建,构建完成后页面变更【大概几分钟延迟】

5 离线格式下载

在.yaml文件中补充

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

参考资料:
Configuration file reference — Read the Docs user documentation

四、小结

1 三者关系

latest默认对应master

read the docs的版本名称可以是分支名称,也可以是release的tag名称

2 文档更新过程

1)当有版本更新时,原先最新的版本release,tag命名vx.x,在项目-版本中激活vx.x

2)创建分支编辑更新

3)分支浏览效果是否合适

4)合适后把新的分支内容合并到master,版本管理中关闭该分支版本

【示例】

一开始只有latest(默认对应master,master永远是最新的),有新版本时:

  • master 分支 release v0.1,项目-版本——激活v0.1

  • 修改内容后,发布为branch v0.2,查看内容是否OK

  • OK后合并到master(latest更新),项目-版本——隐藏 branch v0.2 版本

  • 当v0.3推出时,master分支 release v0.2,项目-版本——激活v0.2

  • ……

注意

避免二者(release tag和branch name)命名重复

如果都是v1.0,read the docs会自动命名为v1.0_a

但是在前端页面都是显示v1.0,所以要避免二者(release tag和branch name)命名重复

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目:自主实现Boost搜索引擎

文章目录 写在前面开源仓库和项目上线其他文档说明 项目背景项目的宏观原理技术栈与环境搜索引擎原理正排索引倒排索引 去标签和数据清洗模块html文件名路径保存函数html数据解析函数文件写入函数 建立索引模块检索和读取信息建立索引建立正排索引建立倒排索引jieba工具的使用倒…

基于FPGA的按键消抖

按键工作原理 当KEY1按下时,整条电路就会导通,这个时候KEY1就是低电平; 当KEY1松开时,整条电路就会断开,这个时候KEY1就是高定平; 我们可以通过判断KEY1的高低电平来判断按键是否被按下。 为什么按键消…

关于ansible的模块 ③

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 接《关于Ansible的模块①》和《关于Ansible的模块②》,继续学习ansible的user模块。 user模块可以增、删、改linux远…

idea 开发serlvet汽车租赁管理系统idea开发sqlserver数据库web结构计算机java编程layUI框架开发

一、源码特点 idea开发 java servlet 汽车租赁管理系统是一套完善的web设计系统sqlserver数据库 系统采用serlvetdaobean mvc 模式开发,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 java se…

移动平台相关(安卓)

目录 安卓开发 Unity打包安卓 ​编辑​编辑 BuildSettings PlayerSettings OtherSettings 身份证明 配置 脚本编译 优化 PublishingSettings 调试 ReMote Android Logcat AndroidStudio的调试 Java语法 ​编辑​编辑​编辑 变量 运算符 ​编辑​编辑​编辑​…

猫咪也爱美食!这款猫粮让你的猫主子欲罢不能!

👋 亲爱的宠友们,最近我也在为家里的猫主子换猫粮的事情犯愁呢!我知道,给猫咪选择一款合适的猫粮真的是个挺重要的事情。我家猫咪现在吃的是福派斯牛肉高脂猫粮,感觉还不错。 🐱 首先说说我家猫咪的情况吧。…

Java方法引用

方法引用概述 把已经有的东西拿过来用,当做函数式接口中的抽象方法的方法体 import java.util.*;public class test {public static void main(String[] args) {//需求:创建一个数组,进行倒序排列Integer[] arr {3,5,4,1,6,2};//匿名内部类Arrays.sort(arr, new Comparator&l…

某虚假交友APP(信息窃取)逆向分析

应用初探 在群里水群的时候 群u发了一个交友APP 于是拿来分析一下 可以看到应用打开后又一个登录的界面 需要用户输入手机号与验证码进行登录 #在线云沙箱分析 将APK放入某安信云沙箱中分析 提示应用请求了过多的敏感权限 逆向分析 直接拖入Jadx分析 好在程序没有加固 也没…

Vue 有哪些主要的指令修饰符

目录 1. 什么是指令修饰符 2. 指令修饰符有哪些 2.1. 按键修饰符 2.2. v-model修饰符 2.3. 事件修饰符 1. 什么是指令修饰符 通过 "." 指明一些指令 后缀,不同 后缀 封装了不同的处理操作 目的:简化代码 2. 指令修饰符有哪些 2.1. 按键…

【SQL Sever】3. 用户管理 / 权限管理

1. 创建登录名/用户/角色 在SQL Server中,创建用户通常涉及几个步骤。 首先,你需要创建一个登录名,然后你可以基于这个登录名在数据库中创建一个用户。 以下是如何做到这一点的步骤和相应的SQL语句: 创建登录名 首先&#xff0c…

docker使用arthas基本教程

供参考也是自己的笔记 docker容器下使用遇到的问题:大致是连接不上1号进程 我这边主要的问题是用户权限问题,docker容器使用aaa用户启动,那个在docker容器内,需要使用aaa用于启动 docker 容器如何使用arthas #实现下载好arthas …

C语言第四十一弹---猜数字游戏

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 猜数字游戏 1、随机数生成 1.1、rand 1.2、srand 1.3、time 1.4、设置随机数的范围 2、猜数字游戏的分析和设计 2.1、猜数字游戏功能说明 2.2、猜数字游戏…

js笔记(学习存档)

JS的调用方式与执行顺序 使用方式 HTML页面中的任意位置加上<script type"module"></script>标签即可。 常见使用方式有以下几种&#xff1a; 直接在<script type"module"></script>标签内写JS代码。直接引入文件&#xff1a;…

DSOX3034T是德科技DSOX3034T示波器

181/2461/8938产品概述&#xff1a; 特点: 带宽:350 MHz频道:4存储深度:4 Mpts采样速率:5 GSa/s更新速率:每秒1000000个波形波形数学和FFT自动探测接口用于连接、存储设备和打印的USB主机和设备端口 触摸: 8.5英寸电容式触摸屏专为触摸界面设计 发现: 业界最快的无损波形更…

WPS快速将插入Excle数据插入Word

前置条件&#xff1a; 一张有标题、数据的excle表格word中的表格与excle表格标题对应或包含电脑已经安装WPS软件 第一步、根据word模板设计excle模板&#xff0c;标头对应 第二步、word上面选【引用】--【邮件】&#xff0c;选打开数据源&#xff0c;找到excle文件&#xff0c;…

Vue3与TypeScript中动态加载图片资源的解决之道

在前端开发中&#xff0c;Vue.js已成为一个备受欢迎的框架&#xff0c;尤其是在构建单页面应用时。Vue3的发布更是带来了许多性能优化和新特性&#xff0c;而TypeScript的加入则进一步提升了代码的可维护性和健壮性。然而&#xff0c;在实际的项目开发中&#xff0c;我们有时会…

手机软件何时统一--桥接模式

1.1 凭什么你的游戏我不能玩 2007年苹果手机尚未出世&#xff0c;机操作系统多种多样&#xff08;黑莓、塞班、Tizen等&#xff09;&#xff0c;互相封闭。而如今&#xff0c;存世的手机操作系统只剩下苹果OS和安卓&#xff0c;鸿蒙正在稳步进场。 1.2 紧耦合的程序演化 手机…

鸿蒙学习记录

问题小测记录 总结链接&#xff1a;小测总结 学习笔记&#xff1a;鸿蒙开发学习记录 1、 main_pages.json存放页面page路径配置信息。 2、在stage模型中&#xff0c;下列配置文件属于AppScope文件夹的是&#xff1f; app.json5 3、module.json5配置文件中&#xff0c;包含…

Django之REST Client插件

一、接口测试工具介绍 在开发前后端分离项目时,无论是开发后端,还是前端,基本都是需要测试API接口的内容,而目前我们需要开发遵循RESTFul规范的项目,也是必然的(自己不开发前端页面)。 在网上有很多这样的工具,常用的postman,但还是需要下载安装。在这我们介绍一个VSCod…

绿联 安装cookiecloud,进行cookie的跨浏览器同步

绿联 安装cookiecloud&#xff0c;进行cookie的跨浏览器同步 1、镜像 easychen/cookiecloud:latest 2、安装 2.1、基础设置 重启策略&#xff1a;容器退出时总是重启容器。 2.2、网络 桥接即可。 2.3、存储空间&#xff08;可选&#xff09; 存储空间可以不配置&#xff…