用 Sphinx 写文档

2016-09-13  本文已影响2368人  正午

本文记录使用Sphinx 写文档,以及利用Nginx 完成部署的整个过程。

环境

Sphinx 本身是使用Python 写的,所以你需要Python 的环境。由于我在Ubuntu14.04 下自然不用操心这个问题,如果是在Windows 环境下我没试过。

pip install Sphinx
 pip install sphinxcontrib-fulltoc

在里文档项目路径下运行下面的命令,我的在test-doc 目录下。

StartProject

sphinx-quickstart

过程中会有一些提示,需要填写项目名称,和选择一些基础的设置,我的选择方式是大部分默认,当选择yes or no 的时候基本都是yes


完了之后会在当前路径下产生一些文件,之所以是在当前路径下,是以为我上面选择的是当前路径,仔细看上图。

.
├── build
├── make.bat
├── Makefile
└── source
    ├── conf.py
    ├── index.rst
    ├── _static
    └── _templates

配置

扩展

source 路径是存放文档原文件的地方,conf.py是配置文件,能设置主题,扩展等。
现在就把插件添加进去,打开conf.py 添加最后一项,其他的都是在上面选择的时候产生的,我基本选择的是yes ,所以会比较多

extensions = [
 33     'sphinx.ext.autodoc',
 34     'sphinx.ext.doctest',
 35     'sphinx.ext.intersphinx',
 36     'sphinx.ext.todo',
 37     'sphinx.ext.coverage',
 38     'sphinx.ext.mathjax',
 39     'sphinx.ext.ifconfig',
 40     'sphinx.ext.viewcode',
 41     'sphinx.ext.githubpages',
 42     'sphinxcontrib.fulltoc',
 43 ]

主题

Sphinx 提供很多主题,去官网选择,你会发现很多主题都是很熟悉,如果你用Python 的化。默认是使用Flask一样的主题
打开conf.py 下面的位置可以编辑主题

 html_theme = 'alabaster'

语法

Sphinx 的文档默认是.rst文件,语法和Markdown 类似,但是我感觉某些地方会比较有优势
找了一下有个清晰的语法文档,有意思的是也是用Sphinx 写的。
官网也有,但是感觉这个会比较好,可能是颜色的问题。
新建一个example.rst 然后在index.rst 里按如下添加

title

title 的书写有几种和Html 中H标签对应

H1 -- Top of Page Header
************************
There should only be one of these per page and this will also -- when
converting to pdf -- be used for the chapters.

H2 -- Page Sections
===================

H3 -- Subsection
----------------

H4 -- Subsubsection
+++++++++++++++++++
table

我觉得优势就在Talbe 的写法上,Sphinx 支持三种table的格式

  1. table (a table with title)
  1. csv-table (a table generated from comma-separated values)
  2. list-table (a table generated from a list of lists)

我觉得list-talbe 会比Markdown 的书写方式好,Markdown 的写法,很难让那些竖线对齐,当文字很长没有规则的时候写的时候就会很乱
list-talbe 没有这个问题,官网给出的一个例子

.. list-table:: Frozen Delights!
   :widths: 15 10 30
   :header-rows: 1

   * - Treat
     - Quantity
     - Description
   * - Albatross
     - 2.99
     - On a stick!
   * - Crunchy Frog
     - 1.49
     - If we took the bones out, it wouldn't be
       crunchy, now would it?
   * - Gannet Ripple
     - 1.99
     - On a stick!

当然会有其他功能,可以添加图片之类的,链接......

部署

我是产生Html 静态文件然后用Nginx 代理这个目录。
在根目录下运行下面的命令,就可以在build 路径下产生html 文件,

make html

然后打开index.html
效果如下

把Html和所有静态文件推到服务器上,配置Nginx 然后就可以访问了
Nginx 配置方法见Nginx官网

如果你事件下来 发现得不到预期的结果,通常是你哪里有问题,比如书写的时候缩进没对齐,多了空格之类都会导致结果不正确。
Sphinx 还可以直接产生PDF文件。

也欢迎关注我的个人微信公众号:正午不早了
也可以访问我的技术博客

上一篇下一篇

猜你喜欢

热点阅读