吉吉于

【sphinx】sphinx学习笔记

最近学习的东西比较多,这不又折腾到了sphinx,装了一下,果然,niubility。

以前以为python官方文档是自己动手写的,没想到····是这货生成的。

好吧,我又孤陋寡闻了。

简介:

Sphinx 是一种工具,它允许开发人员以纯文本格式编写文档,以便采用满足不同需求的格式轻松生成输出。这在使用 Version Control System 追踪变更时非常有用。纯文本文档对不同系统之间的协作者也非常有用。纯文本是当前可以采用的最便捷的格式之一。

虽然 Sphinx 是用 Python 编写的,并且最初是为 Python 语言文档而创建,但它并不一定是以语言为中心,在某些情况下,甚至不是以程序员为中心。Sphinx 有许多用处,比如可以用它来编写整本书!

突出显示

默认情况下,Sphinx 会为 Python 突出显示代码,但它还允许定义其他编程语言,比如 C 和 Ruby。

可以将 Sphinx 想像成为一种文档框架:它会抽象化比较单调的部分,并提供自动函数来解决一些常见问题,比如突出显示标题索引和特殊代码(在显示代码示例时),以及突出显示适当的语法。

语法:

Sphinx 使用 reStructuredText 标记语法(和其他一些语法)来提供文档控制。如果您之前编写过纯文本文件,那么您可能非常了解精通 Sphinx 所需的语法。 

关于rst,上一节刚刚学习了一下。可以过去看一下~  http://lazynight.me/3138.

安装:

pip install sphinx啦~~~

新建工程:

随便找个空目录:

运行命令:sphinx-quickstart

会提示让你输入一些比如项目名称啊,作者啊,目录地址啊之类的

大多数只需要回车就好了。

╭─@localhost ~/z/pj/sphinx
╰─ sphinx-quickstart
Welcome to the Sphinx 1.1.3 quickstart utility.

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

Enter the root path for documentation.

Root path for the documentation [.]:

You have two options for placing the build directory for Sphinx output.
Either, you use a directory “_build” within the root path, or you separate
“source” and “build” directories within the root path.

Separate source and build directories (y/N) [n]: y

Inside the root directory, two more directories will be created; “_templates”
for custom HTML templates and “_static” for custom stylesheets and other static
files. You can enter another prefix (such as “.”) to replace the underscore.

Name prefix for templates and static dir [_]:

The project name will occur in several places in the built documentation.

Project name: lazynight
Author name(s): yuzhe

Sphinx has the notion of a “version” and a “release” for the
software. Each version can have multiple releases. For example, for
Python the version is something like 2.5 or 3.0, while the release is
something like 2.5.1 or 3.0a1. If you don’t need this dual structure,
just set both to the same value.

Project version: 1
Project release 1: 1

The file name suffix for source files. Commonly, this is either “.txt”
or “.rst”. Only files with this suffix are considered documents.

Source file suffix [.rst]: .rst

One document is special in that it is considered the top node of the
“contents tree”, that is, it is the root of the hierarchical structure
of the documents. Normally, this is “index”, but if your “index”
document is a custom template, you can also set this to another filename.

Name of your master document (without suffix) [index]:

Sphinx can also add configuration for epub output:

Do you want to use the epub builder (y/N) [n]:

Please indicate if you want to use one of the following Sphinx extensions:

autodoc: automatically insert docstrings from modules (y/N) [n]:
doctest: automatically test code snippets in doctest blocks (y/N) [n]:
intersphinx: link between Sphinx documentation of different projects (y/N) [n]:
todo: write “todo” entries that can be shown or hidden on build (y/N) [n]:
coverage: checks for documentation coverage (y/N) [n]:
pngmath: include math, rendered as PNG images (y/N) [n]:
mathjax: include math, rendered in the browser by MathJax (y/N) [n]:
ifconfig: conditional inclusion of content based on config values (y/N) [n]:
viewcode: include links to the source code of documented Python objects (y/N) [n]:

A Makefile and a Windows command file can be generated for you so that you
only have to run e.g. `make html’ instead of invoking sphinx-build
directly.

Create Makefile? (Y/n) [y]:
Create Windows command file? (Y/n) [y]:

Creating file ./source/conf.py.
Creating file ./source/index.rst.
Creating file ./Makefile.
Creating file ./make.bat.

Finished: An initial directory structure has been created.

You should now populate your master file ./source/index.rst and create other documentation
source files. Use the Makefile to build the docs, like so:
make builder
where “builder” is one of the supported builders, e.g. html, latex or linkcheck.

╭─@localhost ~/z/pj/sphinx
╰─ ls
Makefile build make.bat source

ok,生成完毕,现在文件夹下有:

  • build目录 运行make命令后,生成的文件都在这个目录里面
  • source目录 放置文档的源文件
  • make.bat 批处理命令
  • makefile 

生成html:

make html 即可。

─@localhost ~/z/pj/sphinx
╰─ make html
sphinx-build -b html -d build/doctrees source build/html
Making output directory…
Running Sphinx v1.1.3
loading pickled environment… not yet created
building [html]: targets for 1 source files that are out of date
updating environment: 1 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.

NewImage

NewImage

配置:

source/conf.py

conf.py文件包含了sphinx工程的所有配置选项,包括一些无法在sphinx-quickstart中进行设置的。

下面是一些常用的选项:

  • language (语言)

    : 对应于sphinx的locale目录下的文件夹,里面是本地化配置。

    官方版本只支持繁体中文(zh_TW),可以下载 <a href="http://www.javaeye.com/wiki/topic/299363" target="_blank">sphinx简体中文包</a> (javaEye topman制作)
        
    下载后放到locale目录下,然后language选项修改为zh_CN即可
    
  • html_theme (输出html的主题):

    # The theme to use for HTML and HTML Help pages.  Major themes that come with
    #
    Sphinx are currently ‘default’ and ‘sphinxdoc’.
    html_theme = sphinxdoc

     

然后在index.rst里写文档啦~或者新建另一个rst

NewImage

ok,还有rst的相关使用方法,去学习一下吧~

转载请注明:于哲的博客 » 【sphinx】sphinx学习笔记