当前位置: 首页 > news >正文

104、【OS】【Nuttx】【周边】文档构建渲染:安装 Sphinx 扩展(上)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

接之前 blog
【OS】【Nuttx】【周边】文档构建渲染:安装 Esbonio 服务器
【OS】【Nuttx】【周边】文档构建渲染:Sphinx 配置文件
已安装好了 Esbonio 服务器,并介绍了 Sphinx 配置文件 conf.py,其中提到了需要安装一些必要的扩展文件,下面再详细展开下

Sphinx 扩展

首先还是这几个扩展
在这里插入图片描述
下面来介绍这些扩展的安装和配置

sphinx_rtd_theme

作用:Read the Docs 主题,美化文档网站页面
安装:终端输入

python3 -m pip install --user sphinx-rtd-theme --break-system-packages

可以看到安装时会检查依赖项
在这里插入图片描述
终端输入

pip show sphinx-rtd-theme

可以看到 sphinx-rtd-theme 扩展的官方信息
在这里插入图片描述

  • 如果缺少依赖项,自行安装下
  • 可以看到,安装位置是用户环境 .local,因为安装时加了选项 --user
  • 安装完 sphinx-rtd-theme 扩展之后,还要在 conf.py 里面选择一下网站主题,需要设置一下 html_theme 为 sphinx_rtd_theme(注意,包名是短横线,扩展 extensions 和主题 html_theme 都是下划线)
    在这里插入图片描述

这里提前展示下最终的文档渲染效果,可以看到 Read the Docs 主题还是可以的,有搜索框,左侧目录,右侧内容,颜色也分配合理,看着舒服(其实和官方网站上看得一样,只不过这里是本地构建,构建渲染后可以不用联网也能查看)
在这里插入图片描述
查看 Read the Docs 官网链接 https://docs.readthedocs.com/platform/stable/,可以发现其风格可谓是如出一辙
在这里插入图片描述
当然除了 sphinx-rtd-theme 主题,Sphinx 还支持一些其他主题,如 furo,sphinx-book-theme,pydata-sphinx-theme 等,都需要安装对应的扩展,然后设置 html_theme 主题,这里就不深入探索了

myst_parser

作用:支持用 Markdown 语言,.md 文件来写 Sphinx 文档
安装:终端输入

python3 -m pip install --user myst-parser --break-system-packages

在这里插入图片描述
安装完成后,终端输入

pip show myst-parser

可查看 myst-parser 的官方信息
在这里插入图片描述
可以看到 conf.py 中支持的源文件有 .rst 文件和 .md 文件
在这里插入图片描述

sphinx.ext.autosectionlabel

作用:自动为每个章节标题创建引用标签

sphinx.ext.autosectionlabel 是 Sphinx 项目自带的标准扩展,包含在安装 Sphinx 时的主包中,不需要额外安装任何第三方包,在终端中输入

ls ~/.local/lib/python3.12/site-packages/sphinx/ext/

可以看到 autosectionlabel 扩展的实现
在这里插入图片描述
这里可以看到 conf.py 设置了前缀 prefix
在这里插入图片描述
autosectionlabel_prefix_document 变量设置为 True 很有用,表示为每个章节自动生成的标签加上文件路径前缀,避免标题重复导致的引用冲突

今天先到这里吧,下篇 blog 继续

http://www.dtcms.com/a/337225.html

相关文章:

  • 从零到一构建企业级GraphRAG系统:GraphRag.Net深度技术解析
  • Python Ovito统计多晶晶粒数量
  • 领域驱动设计(DDD)中的“核心领域逻辑与基础设施分离”原则
  • Maven 生命周期和插件
  • RocketMQ是什么?
  • Day7--滑动窗口与双指针--1695. 删除子数组的最大得分,2958. 最多 K 个重复元素的最长子数组,2024. 考试的最大困扰度
  • 消息队列中的推模式与拉模式
  • C++/Java双平台表单校验实战:合法性+长度+防重复+Tab顺序四重守卫
  • 【从0开始学习Java | 第14篇】集合(上)
  • Day8--滑动窗口与双指针--1004. 最大连续1的个数 III,1658. 将 x 减到 0 的最小操作数,3641. 最长半重复子数组
  • 考问通系统测试分析报告
  • Golang 语言中的指针操作
  • Android中使用RxJava实现网络请求与缓存策略
  • 实习两个月总结
  • 通义万相Wan2.1- 阿里推出的开源视频生成大模型
  • 从哲学(业务)视角看待数据挖掘:从认知到实践的螺旋上升
  • Elasticsearch查询中的track_total_hits参数
  • 【网络安全实验报告】实验五:网络嗅探及安全性分析
  • 在阿里云 CentOS Stream 9 64位 UEFI 版上离线安装 Docker Compose
  • CentOS 7更换国内镜像源
  • CentOS 7安装OpenVASGVM指南
  • 国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—ARM + DSP、RISC-V核间通信开发案例
  • [数据结构] ArrayList 与 顺序表
  • OVS:ovn为什么默认选择Geneve作为二层隧道网络协议?
  • 【Day 30】Linux-Mysql数据库
  • 大数据计算引擎(三)——Elasticsearch入门
  • uart串口 day57
  • 产品经理如何提升职场学习能力?破除成长瓶颈
  • Vue+Flask 电影协同推荐可视化平台 前后端分离 大数据分析
  • Windows从零到一安装KingbaseES数据库及使用ksql工具连接全指南