目錄
用Sphinx编写技术文档
使用场景
功能
语法简介
标题等级
列表
表格
插入图片
插入代码
默认
自定义
引用代码文件
提供下载文件链接
目录索引
引用
文字效果
斜体
粗体
下标
上标
Hello World
安装 & 初始化
尝试编辑
生成HTML
生成PDF
生成Slide
自定义样式
汇总到一块
最后
首頁 資料庫 mysql教程 用Sphinx编写技术文档

用Sphinx编写技术文档

Jun 07, 2016 pm 04:38 PM
sphinx 編寫

用Sphinx编写技术文档 大家会发现,如果一个项目主要是用Python写的,其文档都很类似,比如:Python在线的HTML官方手册。这些项目的文档都来源于一个很不错的项目:Sphinx。这个Sphinx特指Sphinx doc这个项目(另一个也叫Sphinx的search的项目,虽然都叫一个

用Sphinx编写技术文档

大家会发现,如果一个项目主要是用Python写的,其文档都很类似,比如:Python在线的HTML官方手册。这些项目的文档都来源于一个很不错的项目:Sphinx。这个Sphinx特指Sphinx doc这个项目(另一个也叫Sphinx的search的项目,虽然都叫一个名字)。

官网:http://sphinx-doc.org/

以下出现Sphinx的地方,都特指Sphinx doc这个项目

使用场景

  • 很多开源Python库项目的API手册都是用这个写的,可以看Sphinx官网给的链接:http://sphinx-doc.org/examples.html
  • 如果是用Python写的商业软件,也可以用这个来写技术文档,纯文本管理研发文档,保证功能代码、测试代码、相关文档同时更新
  • 直接拿来写在线书。比如,这个《软件构建实践系列》就是:https://github.com/akun/pm
  • 直接用来做slide等演示幻灯片,从一定程度上替代PowerPoint。比如,http://example.zhengkun.info/slide.html

功能

这里就列举个人关心的几个特性:

  • 文本是rst格式语法
  • 生成HTML、PDF、Slide(需要插件)等格式的文档
  • 支持文档、代码等引用
  • 支持自定义样式
  • 支持插件扩展
  • 直接看官网手册了解更多:http://sphinx-doc.org/contents.html

语法简介

就是rst的语法,这里就列举几个常用的:

标题等级

rst如下:

一级标题
========
二级标题
--------
三级标题
^^^^^^^^
登入後複製

效果如下:

习惯上,可以用以下字符:“= - ` : ‘ ” ~ ^ _ * + # ”。最好能约定个依次标题等级。

列表

rst如下:

* 列表1
* 列表2
* 列表3
登入後複製

效果如下:

  • 列表1
  • 列表2
  • 列表3

列表写法除了用“*”,还可以用:“-”,“+”,最后效果一样。

上面说的是无序列表,如果想用有序列表,可以用“#.”。

rst如下:

#. 列表1
#. 列表2
#. 列表3
登入後複製

效果如下:

  1. 列表1
  2. 列表2
  3. 列表3

表格

rst如下:

=====  =====  =====
第1列  第2列  第3列
=====  =====  =====
8      1      6
3      5      7
4      9      2
=====  =====  =====
登入後複製

效果如下:

第1列 第2列 第3列
8 1 6
3 5 7
4 9 2

插入图片

rst如下:

.. image:: images/ball1.gif
登入後複製

效果如下:

../../../../_images/ball1.gif

插入代码

展示代码示例,经常会用到:

默认

rst如下:

::
   print 'Hello World!'
登入後複製

效果如下:

print 'Hello World!'
登入後複製
登入後複製

自定义

rst如下:

.. code-block:: python
   :linenos:
   print 'Hello World!'
登入後複製

效果如下:

print 'Hello World!'
登入後複製
登入後複製

引用代码文件

rst如下:

.. literalinclude:: code/example.js
   :language: javascript
   :linenos:
登入後複製

效果如下:

提供下载文件链接

直接下载该RST本身。

rst如下:

:download:`sphinx.rst <sphinx.rst>`
</sphinx.rst>
登入後複製

效果如下:

sphinx.rst

目录索引

example1对应sphinx.rst所在目录下的example1.rst文件,example2类似。

rst如下:

.. toctree::
   :maxdepth: 2
   example1
   example2
登入後複製

效果如下:

  • 二级标题1
  • 二级标题2

引用

可以用于跨rst文档间的内容互相引用。这里以本文档内为例。

rst如下:

.. _my-reference-label:
用Sphinx编写技术文档
====================
很长的文字内容
点击回到顶部, :ref:`my-reference-label`.
登入後複製

效果如下:

点击回到顶部,  用Sphinx编写技术文档 .

文字效果

斜体

rst如下:

*斜体*
登入後複製

效果如下:

斜体

粗体

rst如下:

**粗体**
登入後複製

效果如下:

粗体

下标

斜杠是为了空格转义,最后显示无空格。

rst如下:

H\ :sub:`2`\ O
登入後複製

效果如下:

H2O

上标

rst如下:

E = mc\ :sup:`2`
登入後複製

效果如下:

E = mc2

参见

  • 更多说明,详见rst文档:http://docutils.sourceforge.net/rst.html
  • 另外,这本书本身就是个示例:https://github.com/akun/pm

Hello World

根据上面的介绍,其实常用的语法不多,现在直接用下,自己感受下吧!

安装 & 初始化

常用Python安装方式,创建个文件夹,执行命令,按提示自己选择即可。

pip install Sphinx
mkdir docs
cd docs
sphinx-quickstart
登入後複製

根据提示输入相应参数即可,可以一路默认。

尝试编辑

编辑index.rst,只写入以下内容

用Sphinx编写技术文档
====================
使用场景
--------
登入後複製

生成HTML

很简单,默认支持就很好。

make html
python -m SimpleHTTPServer 9527
登入後複製
登入後複製

直接浏览器访问9527端口,就可以看到类似Python官方文档的效果。

生成PDF

麻烦些,需要依赖库,且需要简单修改下配置。

  1. 安装依赖库

pip install rst2pdf
登入後複製
  1. 编辑conf.py,增加或修改如下配置:
  2. 编辑Makefile,增加如下代码:

Linux下的Makefie:

Windows下的批处理:

  1. 执行生成PDF

make pdf
python -m SimpleHTTPServer 9527
登入後複製

参见

有关PDF的更多配置,可以阅读这个文档:http://ralsina.me/static/manual.pdf

生成Slide

Slide就是我们常说的演示文档,如:Windows下的PowerPoint(PPT);Mac下Keynote等等。这里用Sphinx生成在线的HTML5形式的Slide,操作也相对简单,也是需要依赖库和简单修改下配置。

  1. 安装依赖库

pip install hieroglyph
登入後複製
  1. 编辑conf.py,修改如下配置:
  2. 编辑Makefile,增加如下代码:

Linux下的Makefie:

  1. 执行生成Slides

make slides
python -m SimpleHTTPServer 9527
登入後複製

参见

有关Slide的更多信息,可以直接查看这个项目:https://github.com/nyergler/hieroglyph

自定义样式

直接拿来主义,直接用别人写的Trac的样式

  1. 复制样式文件到静态资源目录,比如,这里是:

cp tracsphinx.css _static/
登入後複製
  1. 编辑conf.py,增加或修改如下配置:
  2. 执行生成HTML

make html
python -m SimpleHTTPServer 9527
登入後複製
登入後複製

直接浏览器访问9527端口,就可以看到类似Trac的官方样式效果。

汇总到一块

可以直接看Python项目模板:https://github.com/akun/aproject/只看docs目录即可。

这里提到的几个核心文件示例如下:

  • index.rst
  • conf.py
  • Makefile
  • css

另外推荐一个服务:https://readthedocs.org/

如果你的项目研发文档用Sphinx写的,可以用来做文档的持续集成,相当方便。

这个《软件构建实践系列》就是用的这个服务。

最后

这是一篇很简单的项目推广文章,在自己的Python项目中把Sphinx用起来吧!

当然Sphinx不仅支持Python源码的Domain,而且支持C、C++、JavaScript等Domain,即使没有你所用的语言的Domain,它本身还支持写插件扩展,所以其它类型语言的项目也不妨用一下。

注解

这篇是个人总结的《软件构建实践》系列的一篇文章,更多更新内容,可以直接在线查看:http://pm.readthedocs.org。并且部分内容已经公布在GitHub上:https://github.com/akun/pm

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用php擴展Sphinx進行全文搜索 如何使用php擴展Sphinx進行全文搜索 Jul 29, 2023 am 10:05 AM

如何使用php擴展Sphinx進行全文搜索

編寫C語言中計算冪函數的方法 編寫C語言中計算冪函數的方法 Feb 19, 2024 pm 01:00 PM

編寫C語言中計算冪函數的方法

如何使用C#編寫布隆過濾器演算法 如何使用C#編寫布隆過濾器演算法 Sep 21, 2023 am 10:24 AM

如何使用C#編寫布隆過濾器演算法

如何使用C#撰寫動態規劃演算法 如何使用C#撰寫動態規劃演算法 Sep 20, 2023 pm 04:03 PM

如何使用C#撰寫動態規劃演算法

如何使用C++編寫一個簡單的飯店預約系統? 如何使用C++編寫一個簡單的飯店預約系統? Nov 03, 2023 am 11:54 AM

如何使用C++編寫一個簡單的飯店預約系統?

如何使用C++寫一個簡單的學生選課系統? 如何使用C++寫一個簡單的學生選課系統? Nov 02, 2023 am 10:54 AM

如何使用C++寫一個簡單的學生選課系統?

如何用Python寫KNN演算法? 如何用Python寫KNN演算法? Sep 19, 2023 pm 01:18 PM

如何用Python寫KNN演算法?

如何透過C++寫一個簡單的掃雷遊戲? 如何透過C++寫一個簡單的掃雷遊戲? Nov 02, 2023 am 11:24 AM

如何透過C++寫一個簡單的掃雷遊戲?

See all articles