sphinx 在python 语言开发中,是一个使用的比较多文档生成脚手架工具,我们帮助我们生成
专业的帮助文档,同时也有远端的免费saas 托管服务,方便分发

安装

sphinx 的安装好多方便,mac 的可以使用brew,或者我们可以使用pip 安装,详细的可以参考官方文档

  • mac brew 安装方法
 
brew install sphinx-doc
  • pip 安装
pip install -U sphinx

简单demo

sphinx 提供了一个快速生成文档的命令,使用sphinx-quickstart 我们可以快速生成一个可用的文档项目

  • sphinx-quickstart
sphinx-quickstart
 

效果

欢迎使用 Sphinx 2.1.0 快速配置工具。
请输入接下来各项设置的值(如果方括号中指定了默认值,直接
按回车即可使用默认值)。
已选择根路径:.
布置用于保存 Sphinx 输出的构建目录,有两种选择。
一是在根路径下创建“_build”目录,二是在根路径下创建“source”
和“build”两个独立的目录。
> 独立的源文件和构建目录(y/n) [n]: y
项目名称会出现在文档的许多地方。
> 项目名称: dalongrongdemo
> 作者名称: dalong
> 项目发行版本 []: v1.0
如果用英语以外的语言编写文档,你可以在此按语言代码选择语种。
Sphinx 会把内置文本翻译成相应语言的版本。
支持的语言代码列表见:
http://sphinx-doc.org/config.html#confval-language。
> 项目语种 [en]: 
创建文件 ./source/conf.py。
创建文件 ./source/index.rst。
创建文件 ./Makefile。
创建文件 ./make.bat。
完成:已创建初始目录结构。
你现在可以填写主文档文件 ./source/index.rst 并创建其他文档源文件了。用 Makefile 构建文档,像这样:
 make builder
此处的“builder”是支持的构建器名,比如 html、latex 或 linkcheck。
 
  • 生成html 页面

    sphinx 使用make 进行项目管理,make 可以列出完整的命令

make html
正在运行 Sphinx v2.1.0
making output directory... 完成
构建 [mo]:0 个 po 文件的目标文件已过期
构建 [html]中: 1 个源文件的目标文件已过期
updating environment: 1 added, 0 changed, 0 removed
reading sources... [100%] index                                                                                                                        
查找当前已过期的文件……没有找到
pickling environment... 完成
checking consistency... 完成
preparing documents... 完成
写入输出……[100%] index                                                                                                                                     
生成索引…… genindex
写入附加页面…… search
复制静态文件……完成
复制额外文件……完成
导出 English (code: en) 的搜索索引……完成
导出对象清单……完成
构建 成功.
 
HTML 页面保存在 build/html 目录。
 

生成的内容

tree build 
build
├── doctrees
│ ├── environment.pickle
│ └── index.doctree
└── html
    ├── _sources
    │ └── index.rst.txt
    ├── _static
    │ ├── alabaster.css
    │ ├── basic.css
    │ ├── custom.css
    │ ├── doctools.js
    │ ├── documentation_options.js
    │ ├── file.png
    │ ├── jquery-3.2.1.js
    │ ├── jquery.js
    │ ├── language_data.js
    │ ├── minus.png
    │ ├── plus.png
    │ ├── pygments.css
    │ ├── searchtools.js
    │ ├── underscore-1.3.1.js
    │ └── underscore.js
    ├── genindex.html
    ├── index.html
    ├── objects.inv
    ├── search.html
    └── searchindex.js

页面效果

  • 修改皮肤
    sphinx 默认提供了好多可选的皮肤,我们可以通过修改conf.py 调整,比如:
html_theme = "classic"

重新构建之后的效果

https://sphinx-themes.org/ 网站提供了好多可选的皮肤,提供sphinx_rtd_theme 是用的比较多的一个皮肤

sphinx_rtd_theme 皮肤的安装使用

一般来说我们直接通过pip install sphinx_rtd_theme 然后在执行make html 就可以了,但是可能会有问题,以下会比较保险的安装方法

  • 配置venv
 
python3 -m venv venv
  • 激活虚拟环境
source venv/bin/activate
  • 安装皮肤
pip install sphinx_rtd_theme
  • 修改conf.py
html_theme = 'sphinx_rtd_theme'
  • 重新构建
make html
  • 效果

说明

对于生成的html 文件,我们可以通过minio s3 或者nexus 的raw repo,提供方便的资源访问,同时也可以直接使用github,或者readthedocs
进行托管

参考资料

http://www.sphinx-doc.org
https://sphinx-themes.org/
https://sphinx-rtd-theme.readthedocs.io/en/latest/installing.html

sphinx doc 文档生成脚手架工具的更多相关文章

  1. doc文档生成带目录的pdf文件方法

    准备软件: 福昕PDF阅读器 下载地址:http://rj.baidu.com/soft/detail/12882.html?ald 安装福昕PDF阅读器,会自动安装pdf打印机. 准备好设置好各级标 ...

  2. 使用swagger作为restful api的doc文档生成

    初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情.也许多点,也许少点.甚至,接口总是需要适应新需求的,修改了,增加了,这份 ...

  3. 使用readthedocs 发布 sphinx doc文档

    readthedocs 是由社区驱动的开源sphinx doc 托管服务,我们可以用来方便的构建以及发布文档 这是一个简单的demo 项目,使用了用的比较多的sphinx_rtd_theme 主题,主 ...

  4. 使用swagger作为restful api的doc文档生成——从源码中去提取restful URL接口描述文档

    初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情.也许多点,也许少点.甚至,接口总是需要适应新需求的,修改了,增加了,这份 ...

  5. IDEA生成doc文档-生成chm文档

    首先,打开IDEA,并找到Tools -> Generate JavaDoc- 可供查询的chm比那些HTML页面好看多了. 如果您用过JDK API的chm文档,那么您一定不会拒绝接受其它第三 ...

  6. Javadoc文档生成工具-自定义版

    先上图来一波 本身JDK自带了doc文档生成工具,但是不支持排除类,方法,属性,虽然有个@deprecated可以使用,但是达不到我想要的结果(类会被标记为废弃类,编译使用时会提示), 而且类说明示例 ...

  7. 【开源】AspnetCore 2.0 自动API文档生成组件,支持protobuffer

    本文地址 http://www.cnblogs.com/likeli/p/8204054.html 关于 API文档自动生成,用于对APP端的开发帮助文档生成,默认ProtoBuffer传输格式. 本 ...

  8. python文档生成工具:pydoc、sphinx;django如何使用sphinx?

    文档生成工具: 自带的pydoc,比较差 建议使用sphinx 安装: pip install sphinx 安装主题: 由各种主题,我选择常用的sphinx_rtd_theme pip instal ...

  9. 微软开源全新的文档生成工具DocFX

    微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成文档之外,而且还有语法支持你加入其他的文 ...

随机推荐

  1. 【题解】Luogu P5361 [SDOI2019]热闹又尴尬的聚会

    原题传送门 构造题. 明显p,q都越大越好 我们考虑每次取出度最小的点,加到尴尬聚会的集合中(因为把与它相邻的点全删了,不珂能出现认识的情况),把它自己和与自己相连的点从图上删掉(边也删掉),记下这个 ...

  2. CF704D Captain America 上下界网络流

    传送门 现在相当于说每一个条件都有一个染成红色的盾牌的数量限制\([l,r]\),需要满足所有限制且染成红色的盾牌数量最小/最大. 注意到一个盾牌染成红色对于一行和一列都会产生影响.如果选中一个物品对 ...

  3. K8S使用问题汇总

    1,报错如下 Warning: kubectl apply should be used on resource created by either kubectl create --save-con ...

  4. 阿里云ESC服务器配置记录

    购买服务器 上周赶着活动购买了一年阿里云服务器,记录一下配置过程: 选择服务器类型: linux服务器,网上说一般都用centOS的"比较新"的版本: 重置密码: 重置密码之后一定 ...

  5. float与position间的区别

    float与position间的区别:    个人理解为:脱离文档流不一定脱离文本流:但脱离文本流,则也脱离文档流.[如有更好的理解还望评论区一起探讨,共同学习进步]一.float 浮动(脱离文档流, ...

  6. 2.在HTML中使用JavaScript

    目录 1. script元素 2. 标签的位置 3.延迟和异步加载 4.嵌入代码与外部代码的区别 5.noscript元素 6. 小结 1. script元素 向HTML中插入JavaScript的主 ...

  7. Html-CSS-细节处理

    1.input 添加padding后宽度会变化 input中添加如下样式,固定 box 的尺寸 box-sizing: border-box; -webkit-box-sizing: border-b ...

  8. GO实现Cron解析和定时任务

    Go的Cron表达式解析库:github.com/gorhill/cronexpr 核心类型和方法 // 表达式对象 expr *cronexpr.Expression // 解析cron表达式 ex ...

  9. oracle 数据库导入导出语句

    oracle的exp/imp命令用于实现对数据库的导出/导入操作;exp命令用于把数据从远程数据库服务器导到本地,生成.dmp文件;imp命令用于把本地的数据库.dmp文件从本地导入到远程的oracl ...

  10. 日志 logback-spring.xml配置

    文章转载自: https://blog.csdn.net/xu_san_duo/article/details/80364600 logback-spring.xml配置文件 1. 自己改下value ...