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

101、【OS】【Nuttx】【周边】文档构建渲染:reStructuredText 格式

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

背景

接之前 blog
【OS】【Nuttx】【构建】cmake 配置保存
之前 blog 分析了 cmake 配置和构建相关内容,下面继续

reStructuredText 格式

回到栈溢出配置项的主线,搜索关键词 CONFIG_ARMV7M_STACKCHECK,在一个名叫 armv7m_runtimestackcheck.rst 的文档中还发现了相关描述
在这里插入图片描述
下面先不讲里面的内容,先讲讲这个 .rst 文件格式:

  • .rst 文件扩展名代表 reStructuredText 文件格式
  • reStructuredText 是一种轻量级的标记语言,用于编写结构化文档,最初由 Python 社区开发,并广泛用于 Python 项目的文档编写中,但其使用并不限于 Python,也可以用于其他项目和语言
  • 许多开源项目使用 reStructuredText 来撰写官方文档,方便编写也方便维护,比如 Nuttx 也用它来写官方文档
  • reStructuredText 的设计目标之一是保持源文件的可读性和可写性,即使在没有经过渲染的情况下也易于阅读和书写

ok,既然分析到了 rst 文件是轻量级标记语言,那么就有渲染后的效果,下面讲下 rst 文档的构建渲染

构建渲染

安装扩展

扩展商店搜索 reStructuredText,找到 LeXtudio 发布(可以看到下载量第一的)
在这里插入图片描述
查看扩展功能
在这里插入图片描述
扩展功能描述:

  • Code Snippets:代码片段,比如当 .rst 文件中输入一些关键词(比如 … code-block:: python),编辑器会自动弹出提示,以便快速插入常用的 reStructuredText 语法结构
  • Editor Enhancement:编辑器增强,比如自动缩进,括号匹配,标题下划线自动对齐等
  • Linter Integration:语法检查集成,当写错语法时(比如标题下划线长度不对),编辑器会用波浪线标出错误,给出提示
  • 这里最重要的是划线部分,Live Preview,实时渲染,因为本篇 blog 的目的是构建渲染,而不是编写 reStructuredText 文档,所以不会着重讲 reStructuredText 语法,划线部分表示预览功能由另一个扩展提供

点开依赖扩展链接,可以看到其扩展为 Esbonio

在这里插入图片描述
在扩展商店中搜索并安装
在这里插入图片描述
查看 Esbonio 扩展的功能描述
在这里插入图片描述
查看这里的描述,有几个关键点:

  • 首先,这是 Esbonio 官方发布的 VSCode 扩展,作用是把 Esbonio 语言服务器集成到 VSCode 编辑器中
  • 另外,Esbonio language server 是一个专门为 reStructuredText 和 Sphinx 设计的语言服务器,提供开发环境中的高级功能,比如智能感知、自动补全、实时预览等(和上面的 reStructuredText 功能有些重叠,但没关系),提升编写文档的效率和体验
  • 这里要区分下 Esbonio 扩展和 Esbonio 语言服务器,Esbonio 扩展相当于前端,Esbonio 语言服务器相当于后端,所以这里只是安装了 Esbonio 的前端,后面还要安装 Esbonio 语言服务器后端
  • Esbonio 通过语言服务器协议(LSP)与 VSCode 通信,相当于前后端的桥梁,这里就不展开讲了
  • 前面提到了 Sphinx,这里简单介绍下,Sphinx 是个用于生成文档的工具,默认使用 reStructuredText 作为其输入格式

ok,下篇 blog 介绍 Esbonio 后端的安装

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

相关文章:

  • 硬件工程师八月实战项目分享
  • AI抢饭碗,软件测试该何去何从?
  • 基于离散余弦变换的激活水印(DCT-AW)
  • 交错字符串-二维dp
  • 如何通过 Actor 网络压缩为概率分布实现
  • RK3568 Linux驱动学习——新字符设备驱动
  • 人工智能入门①:AI基础知识(上)
  • Vue3 vs Vue2:全面对比与面试宝典
  • 接口添加了 @Transactional 注解并开启事务,而其中一个小方法启动了新线程并手动提交数据,会有什么影响?
  • 红黑树的特性与实现
  • 打靶日常-文件上传
  • 【Python】新手入门:什么是python运算符?python运算符有哪些种类?运算符优先级是怎么样的?
  • Go语言函数详解:从基础到高阶的行为逻辑构建
  • C5.4:光电器件
  • RagFlow启动源码说明
  • Linux framebuffer 编程入门:直接操作显存画图
  • Flutter权限管理三步曲:检查、申请、处理全攻略
  • 【超算】算力的精度,数据中心的划分标准与行业现状(国家超级计算机,企业万卡GPU集群)
  • 深入详解C语言的循环结构:while循环、do-while循环、for循环,结合实例,讲透C语言的循环结构
  • 关于linux软件编程4:目录IO和一些时间函数
  • PAT 1065 A+B and C (64bit)
  • 驱动开发系列62 - glBufferDataARB实现分析
  • Windows下cuda的安装和配置
  • BGP 笔记梳理
  • 110. 字符串接龙
  • 【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(6)——MCP Client(MCP客户端)
  • 最新Coze(扣子)智能体工作流:用Coze实现「图片生成-视频制作」全自动化,3分钟批量产出爆款内容
  • Docker网络命名空间隔离与VPS服务器环境的连通性测试方法解析
  • kali linux 2025.2配置局域网打印服务器惠普打印机HP1108p
  • MySQL查询表结构、表大小