您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

用Sphinx编写技术文档

2024/2/27 18:31:06发布19次查看
用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列表2列表3
表格rst如下:
===== ===== =====第1列 第2列 第3列===== ===== =====8 1 63 5 74 9 2===== ===== =====
效果如下:
第1列第2列第3列
8 1 6
3 5 7
4 9 2
插入图片rst如下:
.. image:: 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
目录索引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 sphinxmkdir docscd docssphinx-quickstart
根据提示输入相应参数即可,可以一路默认。
尝试编辑编辑index.rst,只写入以下内容
用sphinx编写技术文档====================使用场景--------
生成html很简单,默认支持就很好。
make htmlpython -m simplehttpserver 9527

直接浏览器访问9527端口,就可以看到类似python官方文档的效果。
生成pdf麻烦些,需要依赖库,且需要简单修改下配置。
安装依赖库
pip install rst2pdf
编辑conf.py,增加或修改如下配置:编辑makefile,增加如下代码:linux下的makefie:
windows下的批处理:
执行生成pdf
make pdfpython -m simplehttpserver 9527
参见
有关pdf的更多配置,可以阅读这个文档:http://ralsina.me/static/manual.pdf
生成slideslide就是我们常说的演示文档,如:windows下的powerpoint(ppt);mac下keynote等等。这里用sphinx生成在线的html5形式的slide,操作也相对简单,也是需要依赖库和简单修改下配置。
安装依赖库
pip install hieroglyph
编辑conf.py,修改如下配置:编辑makefile,增加如下代码:linux下的makefie:
执行生成slides
make slidespython -m simplehttpserver 9527
参见
有关slide的更多信息,可以直接查看这个项目:https://github.com/nyergler/hieroglyph
自定义样式直接拿来主义,直接用别人写的trac的样式
复制样式文件到静态资源目录,比如,这里是:
cp tracsphinx.css _static/
编辑conf.py,增加或修改如下配置:执行生成html
make htmlpython -m simplehttpserver 9527

直接浏览器访问9527端口,就可以看到类似trac的官方样式效果。
汇总到一块可以直接看python项目模板:https://github.com/akun/aproject/只看docs目录即可。
这里提到的几个核心文件示例如下:
index.rstconf.pymakefilecss另外推荐一个服务:https://readthedocs.org/
如果你的项目研发文档用sphinx写的,可以用来做文档的持续集成,相当方便。
这个《软件构建实践系列》就是用的这个服务。
最后这是一篇很简单的项目推广文章,在自己的python项目中把sphinx用起来吧!
当然sphinx不仅支持python源码的domain,而且支持c、c++、javascript等domain,即使没有你所用的语言的domain,它本身还支持写插件扩展,所以其它类型语言的项目也不妨用一下。
注解
这篇是个人总结的《软件构建实践》系列的一篇文章,更多更新内容,可以直接在线查看:http://pm.readthedocs.org。并且部分内容已经公布在github上:https://github.com/akun/pm
原文地址:用sphinx编写技术文档, 感谢原作者分享。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product