sphinx 文档_Sphinx轻松漂亮的文档

2023-05-16

sphinx 文档

Sphinx是允许开发人员以纯文本格式编写文档的工具,可轻松生成满足各种需求的格式的输出。 使用版本控制系统跟踪更改时,这将很有帮助。 纯文本文档对于跨不同系统的协作者也很有用。 纯文本是当前可用的最可移植的格式之一。

尽管Sphinx是用Python编写的,最初是为Python语言文档创建的,但它不一定以语言为中心,在某些情况下甚至不是特定于程序员的。 Sphinx有许多用途,例如编写整本书!

突出显示

Sphinx默认情况下具有针对Python的代码突出显示功能,但它也允许定义其他编程语言,例如C和Ruby。

将Sphinx视为文档框架 :它抽象了繁琐的部分,并提供了自动功能来解决常见问题,例如标题索引和特殊代码突出显示(如果显示代码示例)以及适当的语法突出显示。

要求

使用Linux®或UNIX®终端(也称为控制台或终端仿真器)时,您应该感到自在,因为命令行界面是与Sphinx交互的主要方式。

需要安装Python。 它已预先安装,可以在所有主要的Linux发行版和某些基于UNIX的操作系统(如Mac OSX)中使用。 Sphinx应该与Python 2.4、2.5和2.6版本一起使用。 为了确保您拥有Python和有效版本,请运行清单1中的命令。

清单1.检查Python版本
$ python --version
Python 2.6.1

句法

Sphinx使用reStructuredText标记语法(带有一些附加功能)来提供文档控制。 如果您曾经写过纯文本文件,那么您可能已经相当了解精通Sphinx所需的语法。

标记允许文本的定义和结构以正确输出。 在开始之前,请参见清单2以获得标记语法的一个小示例。

清单2. Sphinx标记语法示例
This is a Title
===============
That has a paragraph about a main subject and is set when the '='
is at least the same length of the title itself.

Subject Subtitle
----------------
Subtitles are set with '-' and are required to have the same length 
of the subtitle itself, just like titles.

Lists can be unnumbered like:

 * Item Foo
 * Item Bar

Or automatically numbered:

 #. Item 1
 #. Item 2

Inline Markup
-------------
Words can have *emphasis in italics* or be **bold** and you can define
code samples with back quotes, like when you talk about a command: ``sudo`` 
gives you super user powers!

如您所见,该语法在纯文本中看起来非常可读。 当需要创建一个特定格式(如HTML)时,标题看起来像是主要标题,并且字体比字幕要大(应有的字体),并且已对编号的列表进行了正确的编号。 您已经拥有了相当强大的功能。 添加更多项目或更改编号列表中的顺序不会影响编号,标题可以通过替换使用的下划线来更改重要性。

安装与配置

安装在命令行中进行,非常简单,如清单3所示。

清单3.安装Sphinx
$ easy_install sphinx
Searching for sphinx
Reading http://pypi.python.org/simple/sphinx/
Reading http://sphinx.pocoo.org/
Best match: Sphinx 1.0.5
Downloading http://pypi.python.org/packages/[...]
Processing Sphinx-1.0.5-py2.5.egg
[...]
Finished processing dependencies for sphinx

为了简洁起见, 清单3进行了简化,但是它提供了一个示例,说明了安装Sphinx时的期望。

该框架使用目录结构在源(纯文本文件)和内部版本(这是指生成的输出)之间进行分隔。 例如,如果Sphinx被指示从文档来源生成PDF,则该文件将被放置在build目录中。 可以更改此行为,但是为了保持一致,我们将使用默认格式。

让我们快速启动清单4中的新文档项目,该项目将提示您一些问题。 按下Enter接受所有默认值。

清单4.执行sphinx-quickstart
$ sphinx-quickstart 
Welcome to the Sphinx 1.0.5 quickstart utility.

Please enter values for the following settings (just press Enter to
accept a default value, if one is given in brackets).
[...]

我选择“我的项目”作为将在多个地方引用的项目名称。 随意选择其他名称。

运行sphinx-quickstart命令之后,工作目录中应该有类似于清单5中的文件 。

清单5.工作目录清单
.
├── Makefile
├── _build
├── _static
├── conf.py
└── index.rst

让我们仔细看看每个文件。

  • Makefile :已编译代码的开发人员应熟悉此文件。 如果不是,则将其视为包含使用make命令构建文档输出的说明的文件。
  • _build :这是在触发特定输出后将放置生成文件的目录。
  • _static :所有不属于源代码的文件(例如图像)都放在此处,然后在构建目录中链接在一起。
  • conf.py :这是一个Python文件,其中包含Sphinx的配置值,包括在终端中执行sphinx-quickstart时选择的配置值。
  • index.rst :文档项目的根。 如果将文档拆分为其他文件,这将连接其他文件。

入门

至此,我们已经正确安装了Sphinx,了解了默认结构,并了解了一些基本语法。 在跳入编写文档时要谨慎。 缺乏有关布局和输出的知识可能会造成混乱,并可能大大减慢您的整个过程。

看一下index.rst 。 有大量的信息和一些其他复杂的语法。 为了使事情变得简单并避免分散注意力,我们将在主要部分列出新文件,以合并该文件。

index.rst文件中主标题的index.rst ,有一个带有toctree声明的内容列表。 toctree是将所有文档收集到文档中的中心元素。 如果存在其他文件,但未在此伪指令下列出,则在构建时不会与文档一起生成这些文件。

我们想在文档中添加一个新文件,它将被命名为example.rst 。 它需要在toctree列出,但要小心。 要使列表正常工作,必须遵循一个空格,并且不需要文件扩展名(在这种情况下为.rst )。 清单6显示了该列表的外观。 需要使用三个空格将文件名与左边距分开,在maxdepth选项之后留一个空格。

清单6. index.rst中的toctree示例
Contents:

.. toctree::
   :maxdepth: 2

   example

此时,不必担心其他选项。 现在,请注意,存在一个索引文件,其中列出了可以保存有效文档的其他单独文件,并且该清单遵循一定的顺序和间距。

还记得清单2中的示例语法吗? 将该示例复制并粘贴到example.rst文件中并保存。 现在我们准备生成输出。

运行make命令并指定HTML作为输出。 此输出可以生成所有内容,包括JavaScript和CSS文件,因此可以直接用作网站。 参见清单7 。

清单7. make html命令的输出
$ make html
sphinx-build -b html -d _build/doctrees   . _build/html
Making output directory...
Running Sphinx v1.0.5
loading pickled environment... not yet created
building [html]: targets for 2 source files that are out of date
updating environment: 2 added, 0 changed, 0 removed
reading sources... [100%] index
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] index 
writing additional files... genindex search
copying static files... done
dumping search index... done
dumping object inventory... done
build succeeded.

Build finished. The HTML pages are in _build/html.

如果您对make命令提供的其他选项感兴趣,请参见清单8 ,将help标志传递给它,并查看完整说明。

清单8.列出make选项
$ make -h
Usage: make [options] [target] ...
Options:
[...]

静态化

通过第一阶段从这两个文件生成HTML,我们有了一个功能齐全(静态)的网站。

_build目录中,现在应该有两个新目录: doctreesHTML 。 我们对HTML目录感兴趣,该目录包含文档站点所需的所有文件。 使用浏览器打开index.html文件应该显示如图1所示的内容 。

图1.静态HTML主页

Sphinx只需很少的信息就可以创建很多东西。 我们具有基本布局,其中包含有关项目文档,搜索部分,目录,带有名称和日期的版权声明以及分页的一些信息。

搜索部分很有趣,因为Sphinx已经索引了所有文件,并且使用JavaScript魔术创建了一个可搜索的静态站点。

还记得我们在清单6的toctree文档中将example作为一个单独的文件添加了吗? 您可以看到主标题在内容索引中显示为主要项目符号,副标题为第二级项目符号。 Sphinx已采取一切适当的结构。

如果起初你没有成功...

进行其他修改后,只需再次运行make命令即可重新生成文件。

所有链接都将指向文档中的正确位置,并且标题和副标题具有允许直接链接的锚点。 例如, Subject Subtitle部分包含一个锚点,该锚点在浏览器中看起来像../example.html#subject-subtitle 。 如前所述,该工具消除了对这些微小的重复需求的担心。

图2显示了example.rst在静态站点中如何显示为HTML文件。

图2. HTML示例页面

走向图形

简短,简洁的段落,图像和图形都增加了项目文档的趣味性和可读性。 Sphinx可以帮助读者注意这些重要元素,并可以添加静态文件。

添加静态文件的正确语法很容易记住。 只要将静态文件放置在Sphinx在创建文档布局时创建的_static目录中,您就可以毫无问题地引用它。 在清单9中 ,查看该引用在reStructuredText文件中的外观。 在这种情况下,我将其添加到example.rst的底部。

清单9. example.rst中的静态清单
.. image:: _static/system_activity.jpg

重新生成文档后,应将图像正确放置在我们指示有关系统活动的小JPEG图的路径的同一位置。 它看起来应该类似于图3 。

图3.系统活动图像

结论

本文介绍了Sphinx入门的基本知识,但还有很多值得探索的地方。 Sphinx可以导出不同格式的文档,但是它们需要额外的库和软件来安装。 可以生成的某些格式是:PDF,epub,man(UNIX手册页)和LaTeX。

对于复杂的图形,有一个插件可将Graphviz图形添加到您的文档项目中。 我曾经不得不为一个小型办公室网络地图创建一个地图,这真是太好了,我可以不必使用其他工具就可以在同一文档中获取所有内容。 像Graphviz插件一样,Sphinx有很多可用的插件(也称为扩展)。 其中包括一些内容,例如interSphinx,它允许您链接不同的Sphinx项目。

如果生成的输出的外观不符合您的喜好,则Sphinx包含许多主题,可用于完全改变HTML文件渲染文档的方式。 一些重要的开源项目,例如Celery和Lettuce,通过更改CSS并扩展模板来大量修改HTML的外观。 请参阅相关主题的链接,这些项目和文件,说明如何扩展和修改默认CSS和布局部分。

Sphinx改变了我考虑编写文档的方式。 当我能够轻松记录几乎所有的个人开放源代码项目和一些内部开放源代码项目时,我从无为而兴奋。 使用Sphinx可以轻松地在您自己的文档中检索被遗忘的信息。

翻译自: https://www.ibm.com/developerworks/opensource/library/os-sphinx-documentation/index.html

sphinx 文档

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

sphinx 文档_Sphinx轻松漂亮的文档 的相关文章

  • sphinx文档生成脚手架工具安装和使用

    1 sphinx的安装与使用 1 1 安装sphinx sphinx官方安装说明 xff1a Installing Sphinx Sphinx documentation readthedoc官方说明 xff1a Getting Start
  • html+转换+rst,sphinx make html方法(rst格式转html)

    从GITHUB上下载的python文档有rst格式无法打开 xff0c 一般有README txt里说明要转换为html 原文 xff1a You need Sphinx to build this documentation Or you
  • 使用Sphinx阅读rst格式的文档

    背景 Sphinx是一个开源软件 xff0c 可以生成python项目的文档 xff0c 在很多github上的项目 xff0c 当你打开doc下的相关文档文件时 xff0c 往往可以看见rst格式的文件 xff0c 这些文件就是用sphi
  • VScode+Sphinx+ReadTheDocs 从环境搭建到放弃

    概述 此篇博客用来记录在windows10中配置环境的过程 xff0c 注意是Windows下 xff0c 我没有在Linux下面尝试过配置 一下参考了各路教程加上自己亲测 xff0c 应该是没有问题的 被掏空 目录 概述 目录材料清单工具
  • Sphinx使用说明

    link https blog csdn net sinat 29957455 article details 83657029 1 安装插件 xff1a pip3 install sphinx pip3 install sphinx rt
  • Sphinx index.rst

    假设我们有两个文本file1 rst和file2 rst他们的内容如下 file1 rst span class hljs header file1 title1 61 61 61 61 61 61 61 61 61 61 61 61 sp
  • 文档与笔记利器 reStructuredText 和 Sphinx

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

    reStructuredText 用 reStructuredText 写作 xff1a 快速入门指南 reStructuredText rst 快速入门语法说明 reStructuredText rst 语法规则快速入门 在线 reStr
  • 【PARROT ANAFI】无人机仿真(一)——在Ubuntu18.04完成Olympe+Sphinx配置

    1 本机参数 操作系统 xff1a Ubuntu 18 04 在虚拟机与原生系统基本无差别 系统架构 xff1a 基于x64的处理器 更新时间 xff1a 2020 10 24 2 Olympe配置 创建文件夹 xff0c 安装repo工具
  • python 使用sphinx 快速生成说明文档

    目录 python 使用sphinx 快速生成说明文档 1 安装sphinx 2 文件结构 3 修改配置文件 4 生成html文档 生成markdown文档 1 安装依赖 2 修改配置文件 3 生成markdown文档 python 使用s
  • KaTeX使用

    前言 在 KaTeX KaTeX KATE X官网 有两张支持表 这里搬运过来以便于大家能够正确使用指令 这张表应该涵盖了纯 KaTeX KaTeX KATE X所有的功能 当然
  • Sphinx——自动生成Python文档

    Sphinx是一个可自动生成python项目api的工具 使用起来也比较简单 只需要在项目上进行简单的配置 即可生成项目的api文档 简介 Sphinx是Python文档生成器 它基于reStructuredText标记语言 可自动根据项目
  • 狮身人面像和“你的意思是……?”建议想法。它会起作用吗?

    我正在尝试想出最快的方法来提出搜索建议 起初我认为 Levenstein UDF 函数与 mysql 表相结合就可以完成这项工作 但是使用 levenshtein mysql 必须遍历表中的每一行 大量的单词 这会使查询非常慢 现在我最近安
  • 使用 MySQL Fulltext(或 sphinx?)进行模糊街道地址搜索[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个数据库表 其中包含来自 Google 地图地理编码响应的地址 Google 缩写了所有方向 西 gt W 东 gt E 等 因
  • Sphinx 返回错误的搜索结果

    我将 Sphinx 与 Thinking Sphinx 插件一起使用 我使用以下代码 以及 rakethinking sphinx index 命令 对名为 Venue 的模型建立了索引 define index do indexes na
  • Sphinx搜索排名破了?

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

    首先 我要说的是 我知道http sphinxsearch com docs current html conf sql attr string http sphinxsearch com docs current html conf sq
  • Sphinx 过滤器 - 过滤器属性之间可以有“OR”吗?

    我正在使用 sphinx 列出数据库中的一些项目 几乎100 我只是还没弄清楚如何创建一个OR两个不同的过滤器之间 例如 我在数据库中的对象有开始日期和结束日期 我可以filter starting date x y and filter
  • Sphinx .net 实现

    是否可以在 net MSSQL 应用程序中实现Sphinx 全文搜索 如果是这样 任何帮助如何实现相同的 一个小的描述将会有很大帮助 我们正在使用 SphinxConnector NET http www sphinxconnector n
  • Sphinx警告预加载:无法打开

    我安装了sphinx搜索服务 为了创建索引 我使用下一个命令 sudo searchd c etc sphinxsearch sphinx conf 在终端中收到警告消息后 使用配置文件 etc sphinxsearch sphinx co

随机推荐

  • 什么是Ubuntu LTS?与常规Ubuntu版本有何不同?

    Ubuntu distributions are released at given time intervals Every release has a code name that is related to an animal nam
  • 定义一个protobuf消息并生成Go代码

    大家好 xff01 让我们开始gRPC课程的动手部分 整个部分的目标是构建 个人计算机 Web服务 xff0c 该服务将使我们能够管理和搜索笔记本电脑配置 Here 39 s the link to the full gRPC course
  • 学科起源(漫画版)

    发几张收藏的图 xff0c 让大家对学科起源有点了解 xff0c 避免因学科纷争而引起不和 xff0c 生命科学也罢 xff0c 神经网络也罢都摆脱不了从物理和数学的角度去解释 xff0c 因为机器学习中很大的一部分 xff0c 尤其是神经
  • 【沧海拾昧】WiFi串口通信ESP8266模块基本介绍(附野火WiFi透传实例)

    C0104 沧海茫茫千钟粟 xff0c 且拾吾昧一微尘 沧海拾昧集 64 CuPhoenix 阅前敬告 沧海拾昧集仅做个人学习笔记之用 xff0c 所述内容不专业不严谨不成体系 如有问题必是本集记录有谬 xff0c 切勿深究 目录 前言一
  • linux shell

    转自 xff1a http blog csdn net fly sky520 article details 8853537 最近在linux下面编写shell脚本 xff0c 差不多是边学边写 在此记录一些学习心得 一 xff09 she
  • 软件开发遇到的难题_软件开发团队如何处理管理难题

    软件开发遇到的难题 通常是这样的 项目经理或产品负责人传达了来自公司食品链上层人士的消息 xff0c 即必须在给定日期之前交付软件 日期背后的原因可能是已知的 xff0c 但可能不是 反过来 xff0c 项目经理通知软件开发团队必须在该日期
  • Ubuntu20.04由于分辨率问题安装界面显示不完整

    使用vmware安装ubuntu的时候 xff0c 由于分辨率的问题 xff0c 导致安装界面显示不完整 xff0c button被隐藏 xff0c 无法进行下一步鼠标操作 同学遇到的问题 xff0c 迟迟不能解决 xff0c 参考别人的解
  • 数据结构排序算法及代码整理

    排序 xff1b 1 插入排序 xff08 直接插入排序和希尔排序 xff09 2 选择排序 xff08 直接选择排序和堆排序 xff09 3 交换排序 xff08 冒泡排序和快速排序 xff09 4 归并排序 5 基数排序 xff0d x
  • 排序算法性能比较

    各种排序方法的综合比较 结论 排序方法 平均时间 最坏时间 辅助存储 简单排序 O n2 O n2 O 1 快速排序 O nlogn O n2 O logn 堆排序 O nlogn O nlogn O 1 归并排序 O nlogn O nl
  • c++标准容器类(表格介绍)

    1 STL有6种序列容器类型 xff08 1 xff09 vector 它提供对元素的随即访问 xff0c 在尾部添加和删除元素的时间是固定的 xff0c 在头部或中部插入和删除元素的复杂度为线性时间 xff08 2 xff09 deque
  • 各大公司薪水一览表

    转自 http blog sina com cn s blog 4997a23a0100b2xc html 最近终于把自己给卖了 xff0c 这几个月来自己陆陆续续的面试的有30多家公司 xff0c 主要是IT公司 xff0c 准备把今年我
  • strtol

    转自 xff1a http hi baidu com qwpsmile blog item 9bc44efa4f41018a9f514637 html 今天 xff0c 在review 一些代码的时候 xff0c 看到了strtol 这个函
  • 学会做自己的朋友

    转自 http www 5xue com modules article view article php a2233 你是否经历过 xff1a 我们常会怪罪自己 xff0c 给自己很低的评价 xff0c 也习惯对结果做最坏的打算 xff1
  • 二值信号量和互斥信号量的区别

    互斥信号量和二进制信号量的区别 互斥型信号量必须是同一个任务申请 xff0c 同一个任务释放 xff0c 其他任务释放无效 同一个任务可以递归申请 二进制信号量 xff0c 一个任务申请成功后 xff0c 可以由另一个任务释放 二进制信号量
  • 敏捷开发

    这两个圆圈表示不同的视角上的敏捷实践 xff0c 包括开发者视角和项目管理的视角 接下来从里向外进行介绍 xff0c 因为有些实践我了解得不清楚 xff0c 如果下面有哪些说得不对的地方也请大家指出 Test Driven Developm
  • c++结构体的二进制文件,python如何解析

    c 43 43 结构体的二进制文件 xff0c python如何解析 场景分析 现有如下场景 xff1a 有一个二进制文件需要解析成可读数据已知条件 xff1a 该文件符合c 43 43 结构体对应的结构体数据 xff0c 因此我们可以通过
  • LeetCode刷题记录(Python3)——线性表

    LeetCode27 移除元素 简单 问题描述 xff1a 给定一个数组nums和一个值val xff0c 你需要原地 移除所有数值等于val的元素 xff0c 并返回移除后数组的新长度 不要使用额外的数组空间 xff0c 必须仅使用 O
  • 使用百度网盘上传大文件到云服务器

    因为需要把几个7G大小左右的数据上传至服务器 xff0c 但无奈使用的是共享服务器 xff0c 上传速度非常慢 管理员建议可以用奶牛快传 xff08 目前收费 xff09 中转 xff0c 百度搜了一下 xff0c 百度网盘有相同作用 xf
  • ubuntu操作系统中TCP客户端和服务器端的开发

    网络编程在Python中的应用 xff0c 三次握手和四次挥手的理解 TCP客户端和服务器端流程图 xff1a TCP客户端开发流程 xff1a 1 创建客户端套接字 2 和服务端套接字建立连接 3 发送数据 4 接收数据 5 关闭客户端套
  • sphinx 文档_Sphinx轻松漂亮的文档

    sphinx 文档 Sphinx是允许开发人员以纯文本格式编写文档的工具 xff0c 可轻松生成满足各种需求的格式的输出 使用版本控制系统跟踪更改时 xff0c 这将很有帮助 纯文本文档对于跨不同系统的协作者也很有用 纯文本是当前可用的最可