当前位置: 首页 > 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.lryc.cn/news/624829.html

相关文章:

  • Day7--滑动窗口与双指针--1695. 删除子数组的最大得分,2958. 最多 K 个重复元素的最长子数组,2024. 考试的最大困扰度
  • 负载均衡终极指南:从流量分发到云原生架构的核心解析
  • Apache IoTDB集群部署实战:1C2D架构的高性能时序数据库搭建与优化指南
  • 第4章-04-用WebDriver页面元素操作
  • onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT fromUser false
  • 告别 DOM 的旧时代:从零重塑 Web 渲染的未来
  • scikit-learn/sklearn学习|弹性网络ElasticNet解读
  • LINUX 818 shell:random;for for
  • 咨询进阶——解读咨询顾问技能模型
  • 2025 年世界职业院校技能大赛汽车制造与维修赛道高职组资讯整合
  • Unity开发中的浅拷贝与深拷贝
  • 做一个答题pk小程序多少钱?
  • Golang資源分享
  • USB基础 -- 字符串描述符 (String Descriptor) 系统整理文档
  • C++中内存池(Memory Pool)详解和完整示例
  • Mongodb(文档数据库)的安装与使用(文档的增删改查)
  • 可实时交互的AI生成世界,腾讯发布的AI框架Yan
  • 对象存储 COS 端到端质量系列 —— 终端网络诊断工具
  • EMC PCB 设计规范
  • 上汽通用牵手Momenta,别克至境L7全球首发搭载R6飞轮大模型
  • 用随机森林填补缺失值:原理、实现与实战
  • 深度学习必然用到的概率知识
  • 94、23种设计模式之工厂方法模式
  • Redis--day8--黑马点评--分布式锁(一)
  • 单片机驱动LCD显示模块LM6029BCW
  • 机器学习-决策树:从原理到实战的机器学习入门指南
  • LLM - windows下的Dify离线部署:从镜像打包到无网环境部署(亲测)
  • VectorDB+FastGPT一站式构建:智能知识库与企业级对话系统实战
  • 【Python 小工具】一键把源表 INSERT SQL 转换成目标表 INSERT SQL
  • 华为认证 HCIA/HCIP/HCIE 全面解析(2025 版)