文档与笔记利器 reStructuredText 和 Sphinx

2023-05-16

原文http://qixinglu.com/archives/note_tools_restructuredtext_sphinx


文档与笔记利器 reStructuredText 和 Sphinx

28六 
2011
# 作者:  投稿/转载  / 本文采用 CC BY-NC-SA 2.5协议 授权,转载请注明 本文链接

本文转载自七星庐 [ 原文:文档与笔记利器reStructuredText和Sphinx / 作者 muzuiget ]

关于制作文档和笔记这种事,我已经纠结了很久,网上解决方案也一大推,我试过几样,ScrapBook 和 Zotero,编辑不太方便,同步麻烦。Google Note 过于格式简单,现在也不更新了,Google Docs又有点杀鸡用牛刀。还有传得很神奇的 Evernote 跟 Onenote,我压根没兴趣去用。

因为我的笔记大多都是自己写出来,整理出来的,就是精简成自己能看得懂的几段文字而已。我的要求无非这几样:主要是纯文本、工具开源、能同步和备份。

选择纯文本保存,我需要一个预定义格式,让笔记看起来有模有样,编辑器还能有简单代码高亮的,于是我在这个轻量级标记语言的维基页面观望好久。

Wiki也是一种不错方案,但是要搭服务器,不用服务器的也免不了各种配置,各种wiki系统的格式也不同。又研究了reStructuredText,发现阅读性非常好,能转换的格式也非常多。

vim就默认支持代码高亮了(rst扩展名),也能通过rst2html命令转换成的html,但是样式不太理想,我想应该有更漂亮的html生成器。于是我发现Sphinx这个工具,又当我发现其实这就是Python官方文档解决方案后。

我就做出最后决定了这一组合,reStructuredText作为标记语言,Sphinx作为生成工具。

预览

先来看看reStructuredText格式在vim的效果

生成html效果,就是python风格!

使用

只需安装python和sphinx即可。 安装python-sphinx这个包即可,自动解决依赖了,如果追新,则可以通过pypi来安装(也就是easy_install命令啦,不过要手动安装几个依赖库)。

安装后,应该会有sphinx-quickstart这个命令了。先新建一个空目录,这个目录会放置你的笔记


muzuiget:~$ mkdir note
muzuiget:~$ cd note/
muzuiget:~/note$ sphinx-quickstart  

会问你N个问题,一般来说,只需要填四个地方,其余的都直接回车就行了

  1. Project name: Muzuiget Note
  2. Author name(s): muzuiget
  3. Project version: 1
  4. Project release [1]: 1

加粗的是我填的,最后的两个发布号跟先跟版本号一样就行了,这个可以以后再改的。然后这个目录的内容就是这样


muzuiget:~/note$ tree .
.
|-- _build
|-- conf.py
|-- index.rst
|-- make.bat
|-- Makefile
|-- _static
`-- _templates

3 directories, 4 files  

然后你可以用文本编辑器打开 index.rst 这个文件,如果用vim,就发现有代码高亮啦。暂时不用改什么,接着运行


muzuiget:~/note$ make html  

然后用浏览器打开 _build/html/index.html 你会看到,舒服漂亮的python式文档出现鸟。

添加内容

当然现在什么内容也没有,现在你就可以向 index.rst 添加内容就行了。 至于reStructuredText的语法,reStructuredText、Sphinx、Python都有简单的教程

  1. reStructuredText A ReStructuredText Primer
  2. Sphinx reStructuredText Primer
  3. Python reStructuredText Primer

这几个链接的html本身就是reStructuredText写出来的,比如第一个链接的源代码,另存到为 quickstart.rst,放到 index.rst 的统一目录下。然后修改 index.rst,就加一行


.. toctree::
   :maxdepth: 2

   quickstart.rst  

注意“quickstart.rst”中的“q”和“ :maxdepth: 2”的冒号在同一列,保存,然后重新


muzuiget:~/note$ make html  

再次刷新 _build/html/index.html,你就看到新的内容了,很简单吧。除了html外,sphinx也支持其它格式,直接运行make就能看到参数了。

ReStructuredText资料

下一步问题就是学习reStructuredText来编写规范的文档和笔记了,reStructuredText官方有个快速参考。而可供参考的实际例子更加多了,Sphinx的文档和Python文档就是非常规范了,页面旁边有个“Show Source”链接,还不够,Sphinx上还有个列表。

其实之前的sphinx-quickstart这个命令主要是创建了了 conf.py 这个文件,里面就是输出html或其它格式的配置,可以参考Sphinx文档来修改,定制性相当得高,还内置几种主题。这个方面还大家慢慢研究吧。

同步

对了,如何同步呢?还用多想,直接把笔记文件夹扔到Dropbox得了,就这么简单。在Bitbucket搭个私有仓库也行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文档与笔记利器 reStructuredText 和 Sphinx 的相关文章

  • Sphinx——自动生成Python文档

    Sphinx是一个可自动生成python项目api的工具 使用起来也比较简单 只需要在项目上进行简单的配置 即可生成项目的api文档 简介 Sphinx是Python文档生成器 它基于reStructuredText标记语言 可自动根据项目
  • 将 Python 数据结构输出到 reStructuredText 有哪些方法

    我有一个 Python 元组列表 我想将其输出到 reStructuredText 中的表中 docutils 库对将 reStructuredText 转换为其他格式有很大的支持 但我想直接从内存中的数据结构写入 reStructured
  • 如何添加目录树条目?

    我正在尝试开始使用 Sphinx 来记录 Python 但我似乎缺少一些非常基本的入门步骤 我正在关注http www sphinx doc org en stable tutorial html并已安装并配置 尽可能使用默认值 该工具 问
  • 狮身人面像和“你的意思是……?”建议想法。它会起作用吗?

    我正在尝试想出最快的方法来提出搜索建议 起初我认为 Levenstein UDF 函数与 mysql 表相结合就可以完成这项工作 但是使用 levenshtein mysql 必须遍历表中的每一行 大量的单词 这会使查询非常慢 现在我最近安
  • 如何增加 Sphinx / 重构文本中的固定宽度字体大小?

    我正在使用 Sphinx 生成使用重构文本作为标记的文档 但是 当我使用一些内联格式使文本以固定宽度字体显示时 no cache渲染的 HTML 以较小的字体显示文本 如何增加 Sphinx reStructured Text 中的固定宽度
  • Sphinx 从自定义代码参考中删除代码格式

    我有以下课程 class A def x Do the thing class B A def x Do the thing but better than the py meth parent
  • Sphinx搜索排名破了?

    有人曾经使用过 Sphinx 排名选项吗 我已经阅读了手册和书籍 但根本无法进行排名 据我了解 排名只是以不同的方式计算权重 不进行任何类型的排序 我的结果按 weight 内部sphinx字段 排序并使用扩展排序模式 您需要这样做 但看不
  • 如何在Sphinx Alabaster主题下编辑侧边栏

    我有以下内容index rst file Know the cell population of your data Some content toctree maxdepth 2 Installation toctree maxdepth
  • Sphinx实时索引配置?

    我是 Sphinx 的新手 我需要 Linux 服务器中实时索引 sphinx config 的示例代码 对于近实时索引 您可以使用增量方法 http sphinxsearch com docs 1 10 delta updates htm
  • Sphinx .net 实现

    是否可以在 net MSSQL 应用程序中实现Sphinx 全文搜索 如果是这样 任何帮助如何实现相同的 一个小的描述将会有很大帮助 我们正在使用 SphinxConnector NET http www sphinxconnector n
  • 如何避免 ReST 表中的水平滚动条?

    我在 ReST 标记中有这个表 Option Line Kind Distinguishing Characteristic Reference The option name is call
  • 如何在 reStructuredText (reST) 中写入乘号?

    我正在编写将使用 Sphinx 呈现为 HTML 和 PDF 的 reST 文档 我的源文件是 UTF 8 并且期望我的 HTML 显示为 UTF 8 书写乘号的最佳做法是什么 即 而不是x 我知道我可以将它作为 Unicode 字符插入
  • 如何从 .rst 文件访问 sphinx conf.py 中的变量?

    我是 Sphinx 和 reStructuredText 的新手 在我的狮身人面像里面conf py我定义 version 0 0 2 代替tutorial rst我想访问version变量和显示0 0 2在我的 html 文件中 我试过
  • Python 文档的 reStructuredText 有真正的替代品吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我很快就要开始一个开源 Python 项目 并且我试图提前决定如何编写我的文档字符串 显而易见的答案是
  • 如何交叉引用 Sphinx 中 autodoc 生成的函数?

    我正在使用Sphinx autodoc根据我的 Python 库的文档字符串生成文档的功能 找到交叉引用的语法here http sphinx doc org markup inline html ref role 该部分之前必须有一个标签
  • 如何处理 ReST 中的两个破折号

    我正在使用 Sphinx 来记录用 Python 编写的命令行实用程序 我希望能够记录命令行选项 例如 region像这样 region
  • 用于将一个文档包含到另一个文档中的 sphinx 指令是什么?

    在我的文档中我有一个examples我可以说的目录 literalinclude examples 1 basic usage py language python linenos 效果很好 因为它们是代码 并且它们的格式正确为代码 但是
  • 如何在代码块中包含内部引用?

    在我的 Sphinx rst 文档中 我有一个代码块 其中包含使用 UNIX 的产品结构的树视图tree命令 parent child grandchild 它位于代码块中 以便 Sphinx 保留空格 我希望读者能够单击每个节点来关注内部
  • Python 将 sphinx RST 转换为 HTML

    我试过这段代码 from docutils core import publish string text publish string open file path r read writer name html 但它说 p Unknow
  • Sphinx错误:搜索请求中未知的本地索引“INDEX_NAME”[已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我使用 Sphinx 0 9 9 r

随机推荐

  • postman进行http接口测试

    HTTP的接口测试工具有很多 xff0c 可以进行http请求的方式也有很多 xff0c 但是可以直接拿来就用 xff0c 而且功能还支持的不错的 xff0c 我使用过的来讲 xff0c 还是postman比较上手 优点 xff1a 1 支
  • Linux系统迁移(将配置好的系统安装到其它电脑上)

    Linux系统迁移 说在前面 xff1a 下面有几个教程链接 xff0c 我都是通过这几个链接来完成的系统备份与系统恢复 并且遇到过一些问题 xff0c 踩过一些坑 建议先看完我的说明再进行操作 xff0c 少走弯路 没有图是因为下面分享的
  • 搭建 公网FTP服务器 外网访问

    我是在ubuntu 20 04 上配置的 xff0c 需要用到公网IP 没有公网IP的 xff0c 可以考虑花生壳这类应用来做内网穿透 1 配置FTP服务器 安装vsftpd sudo apt install vsftpd sudo vim
  • clang-format配置与使用

    clang format配置与使用 参考教程 1 安装 下载clang format xff0c 设置环境变量 我使用的是vscode扩展中的clang format 位于 xff1a extensions ms vscode cpptoo
  • AI一般是用来制作什么的

    AI一般用来制作logo 分页 xff0c 海报等等 面板堆栈的话就是很多功能堆放的位置 一般打印出来的话用cmyk模式 如果是在web端的话用RGB模式 xff0c 因为cmyk模式在你进行存储的过程中颜色可能会丢失 出血值就是在你打印东
  • Eclipse安装插件的三种方式

    本文介绍Eclipse插件的安装方法 Eclipse插件的安装方法大体有三种 xff1a 直接复制 使用link文件 xff0c 以及使用eclipse自带的图形界面的插件安装方法 AD xff1a 做为当下最流行的开源IDE之一 xff0
  • 获取realsense内参

    文章目录 xff11 xff0e 无畸变 xff12 xff0e Brown Conrady 畸变模型3 Opencv 里畸变图像矫正过程 xff11 xff0e 无畸变 相机内参包括相机矩阵参数和畸变系数 相机内参矩阵为3 3的矩阵 xf
  • 十年研发经验工程师的嵌入式学习书籍大推荐

    从事嵌入式研发行业十年 xff0c 认为学习就是要不断的吸纳知识 xff0c 在研发过程中 xff0c 经常会遇到一些问题 xff0c 这种发现问题并解决问题的过程就是进步 为什么选择学习嵌入式 xff1f 嵌入式系统无疑是当前最热门最有发
  • js手机号正则表达式验证

    看到网上很多代码 都很复杂 xff0c 还包括以中文开头的86 xff0c 17951 xff0c 其实谁会填这么多 xff0c 无非是检验一下他们是否位数对不对 xff0c 开头有没有写错而已 下面我们从百度百科的手机号码历程来看 xff
  • 正则验证匹配中文姓名全部源字符串

    这个是验证匹配中文姓名的全部源串 xff0c 在网上找了很久 xff0c 大都是验证匹配含有中文 xff0c 就在网上某人提供的正则的基础上修改成了验证所填姓名的每个字符 xff0c 只有都匹配才能验证通过 该正则为 xff1a u4e00
  • 域名,网站名和URL区别

    要写一个正则表达式来验证输入域名是否有正确 xff0c 一直以为例如http www baidu com类似于这种才是网站域名 xff0c 经过百度才发现自己的认知是错误的 以下转载于百度经验 xff1a http jingyan baid
  • 23种设计模式(1)-Facade设计模式

    前记 曾经我遇见的一个需求是这样的 xff0c 接口A有个方法void methodA xff0c 类B需要实现接口A的methodA 方法 xff0c 并且在类B中需要把methodA 方法内部处理逻辑获得的结果利用C类实例的某个方法进行
  • Linux CentOS 7安装GNOME图形界面并设置默认启动方式

    为hadoop集群做准备 xff0c 没有多台电脑 xff0c 也只能委屈我这渣渣电脑了 在我的物理机上安装虚拟机 xff0c 再在虚拟机里面虚拟出两台电脑 xff0c 安装两个linux操作系统 1 xff0c 电脑太渣 xff0c 安装
  • dubbo学习资源

    简介 xff1a 项目有使用dubbo xff0c 以此需要学习一下 xff0c 搜集学习资源 一 xff0c 博客资源 1 xff0c dubbo学习 2 xff0c dubbo配置
  • 使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题

    有时我们会给页面的元素 xff08 比如div xff09 设置个固定的高度或宽度 但如果给这个div又设置了内边距或者边框的话 xff0c 那么这个div就会被撑大 也就是其实际的尺寸变成了 xff1a 设置的宽高尺寸 43 内边距 43
  • 博客搬家:https://blog.csdn.net/u012995888

    本博客文章有些乱 xff0c 多有转载 xff0c 现在主要在另一CSDN账号更新原创文章 xff0c 点击查看博客主页 另外 xff0c 本博客后续可能会重新整理栏目 xff0c 更新高质量文章 xff0c 谢谢关注 xff01
  • C++ 常用设计模式(学习笔记)

    1 工厂模式 工厂模式 xff1a 简单工厂模式 工厂方法模式 抽象工厂模式 1 简单工厂模式 xff1a 主要特点是需要在工厂类中做判断 xff0c 从而创造相应的产品 xff0c 当增加新产品时 xff0c 需要修改工厂类 typede
  • 通过更新显卡驱动和内核,解决linux启动时在starting atd: [ok]停止的问题

    说得有些复杂 xff0c 你可以不用理会这些 xff0c 直接执行我罗列的那几个命令就行了 方法一 xff1a 网上有说In some cases the new install Gforce Drivers do not supporte
  • Streamedian/html5_rtsp_player接海康视频遇到的坑

    Streamedian是一套能够让浏览器免插件播放RTSP的项目 安装了其官方的server端后有一个demo 如图 xff0c 在输入处输入红框格式的RTSP地址 xff0c 如官方的demo地址 xff1a rtsp 184 72 23
  • 文档与笔记利器 reStructuredText 和 Sphinx

    原文http qixinglu com archives note tools restructuredtext sphinx 文档与笔记利器 reStructuredText 和 Sphinx 28六 2011 作者 投稿 转载 本文采用