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

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.xdnf.cn/news/18293.html

相关文章:

  • 【笔记】位错的定义和分类
  • K8s的命名空间需要创建吗
  • HAProxy使用方法以及和LVS区别
  • InfluxDB 开发工具链:IDE 插件与调试技巧(二)
  • 【DDIA】第十章:解析Reduce端连接与分组技术
  • 基于C语言实现的HRV分析方法 —— 与Kubios和MATLAB对比
  • Django 请求生命周期
  • 2025北京世界机器人大会 ​要点总结
  • 检索增强生成(RAG) 缓存增强生成(CAG) 生成中检索(RICHES) 知识库增强语言模型(KBLAM)
  • PPT生成视频的AI大模型应用技巧
  • 第4.3节:awk正则表达式详解-特殊字符
  • apisix负载均衡测试
  • Webrtc在项目中承担的角色
  • 决策树-信息增益(第二十三节课内容总结)
  • 第2章:进阶篇——第2节:索引
  • 从决策树基础到熵与信息增益
  • PYTHON让繁琐的工作自动化-函数
  • 【DL学习笔记】交叉熵损失函数详解
  • 人工智能包括哪些方面内容?
  • minio安装和配置
  • 大数据时代时序数据库选型指南:深度解析与 Apache IoTDB 实践
  • 国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—ARM + DSP、RISC-V核间通信开发案例
  • MiniMax Agent 上线 Market Place ,AI一键复制克隆网站
  • 如何解决IDEA/Datagrip无法连接数据库的问题:解决方法为添加参数-Djava.net.preferIPv4Stack=true
  • MySQL的锁:
  • Image and Video Tokenization with Binary Spherical Quantization 论文阅读
  • 【网络运维】Playbook项目实战:基于 Ansible Playbook 一键部署 LNMP 架构服务器
  • WPF---数据模版
  • 突破成长瓶颈:产品运营能力体系化提升技巧
  • CentOS 7更换国内镜像源