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

相关文章:

  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day3
  • C++多态:理解面向对象的“一个接口,多种实现”
  • 《AVL树的原理与C++实现:详解平衡二叉搜索树的高效构建与操作》
  • 旧版MinIO的安装(windows)、Spring Boot 后端集成 MinIO 实现文件存储(超详细,带图文)
  • 使用 6 种方法将文件从 Android 无缝传输到iPad
  • [Linux]学习笔记系列 -- [arm][process]
  • WPF 开发的瑞士军刀:Prism 框架从入门到精通指南
  • C++写文件,open函数的参数in、out、ate、app、trunc等标志分别是什么作用?
  • C++ 面向对象四大特性:面试深度解析
  • 河南萌新联赛2025第五场 - 信息工程大学
  • IDEA创建一个VUE项目
  • C# 微软依赖注入 (Microsoft.Extensions.DependencyInjection) 详解
  • 数据分析项目----幸福感挖掘和预测
  • Python实战教程:PDF文档自动化编辑与图表绘制全攻略
  • PyTorch生成式人工智能——基于Transformer实现文本转语音
  • SeaTunnel MCP Server 入选《中国信通院开源商业产品及企业典型案例集(2025)》
  • 袖珍手持气象仪的用途
  • linux_网络层-ip协议
  • 开源日志log4cplus—调用MultiByteToWideChar提示未定义,CP_UTF8未定义定原因有哪些,如何改进?
  • 【安卓,问题记录】ImageView 在布局顺序上位于 Button 上方,却出现图像内容被 Button 遮挡
  • 北京JAVA基础面试30天打卡09
  • ELK开启安全策略
  • 【递归、搜索与回溯算法】穷举、暴搜、深搜、回溯、剪枝
  • String里常用的方法
  • w481社区老人健康信息管理系统的设计与实现
  • 5.语句几个分类
  • BGE:智源研究院的通用嵌入模型家族——从文本到多模态的语义检索革命
  • 开源WAF新标杆:雷池SafeLine用语义分析重构网站安全边界
  • 【C#】利用数组实现大数数据结构
  • 银发经济时代:科技赋能养老,温情守护晚年,让老人不再孤独无助