资料
官网:http://www.sphinx-doc.org
最全教程见:http://www.pythondoc.com/sphinx/contents.html
参考资料:
sphinx入门指南【1】快速入门:https://www.jianshu.com/p/de731c4b94a0
sphinx入门指南【2】 toctree指令详解:https://www.jianshu.com/p/ded9e52eaebd
环境:Python 3.6/Win10
摘要
想通过Markdown编写技术文档,然后发布到WEB上面,经过研究发现Sphinx比较适合。
Sphinx是一个基于Python的文档生成项目,最早只是用来生成 Python 官方文档,随着工具的完善, 越来越多的知名的项目也用他来生成文档。
支持将Markdown生成html/epub/singlehtml/pdf。
一、安装Sphinx
pip install sphinx sphinx-autobuild sphinx_rtd_theme
二、初始化项目
2.1 创建项目
# 创建文档根目录 mkdir -p /root/work/scrapy-cookbook cd scrapy-cookbook/ # 可以回车按默认配置来写 sphinx-quickstart
2.2 编译项目
.make.bat html
3.2 浏览文档
安全安装nodesjs插件http-server后,执行:
http-server -c-1
(-c-1为禁止缓存)
三、切换成sphinx_bootstrap_theme主题
3.1 安装依赖
pip install sphinx_bootstrap_theme
3.2 将项目主题切换至sphinx_bootstrap_theme
编辑conf.py,修改并添加以下部分
# At the top. import sphinx_bootstrap_theme # ... # Activate the theme. html_theme = 'bootstrap' html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
3.3 自定以主题
将以下内容添加至conf.py
# (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24).
# Path should be relative to the ``_static`` files directory.
# html_logo = "my_logo.png"
# Theme options are theme-specific and customize the look and feel of a
# theme further.
html_theme_options = {
# Navigation bar title. (Default: ``project`` value)
# 'navbar_title': "帮助中心",
# Tab name for entire site. (Default: "Site")
'navbar_site_name': "目录",
# A list of tuples containing pages or urls to link to.
# Valid tuples should be in the following forms:
# (name, page) # a link to a page
# (name, "/aa/bb", 1) # a link to an arbitrary relative url
# (name, "http://example.com", True) # arbitrary absolute url
# Note the "1" or "True" value above as the third argument to indicate
# an arbitrary url.
'navbar_links': [
("控制台", "console/index"),
("主页", "http://www.com.cn", True),
],
# Render the next and previous page links in navbar. (Default: true)
'navbar_sidebarrel': False,
# Render the current pages TOC in the navbar. (Default: true)
'navbar_pagenav': True,
# Tab name for the current pages TOC. (Default: "Page")
'navbar_pagenav_name': "当页导航",
# Global TOC depth for "site" navbar tab. (Default: 1)
# Switching to -1 shows all levels.
'globaltoc_depth': 2,
# Include hidden TOCs in Site navbar?
#
# Note: If this is "false", you cannot have mixed ``:hidden:`` and
# non-hidden ``toctree`` directives in the same page, or else the build
# will break.
#
# Values: "true" (default) or "false"
'globaltoc_includehidden': "true",
# HTML navbar class (Default: "navbar") to attach to <div> element.
# For black navbar, do "navbar navbar-inverse"
# 'navbar_class': "navbar navbar-inverse",
# Fix navigation bar to top of page?
# Values: "true" (default) or "false"
'navbar_fixed_top': "true",
# Location of link to source.
# Options are "nav" (default), "footer" or anything else to exclude.
'source_link_position': "exclude", # 去掉打开源码的链接
# Bootswatch (http://bootswatch.com/) theme.
#
# Options are nothing (default) or the name of a valid theme
# such as "cosmo" or "sandstone".
#
# The set of valid themes depend on the version of Bootstrap
# that's used (the next config option).
#
# Currently, the supported themes are:
# - Bootstrap 2: https://bootswatch.com/2
# - Bootstrap 3: https://bootswatch.com/3
'bootswatch_theme': "flatly", #united 这里可以选很多种风格,具体见:https://bootswatch.com/cosmo/
# Choose Bootstrap version.
# Values: "3" (default) or "2" (in quotes)
'bootstrap_version': "3",
}
四、支持Markdown语法
4.1 安装依赖
pip install recommonmark
4.2 修改配置conf.py
from recommonmark.parser import CommonMarkParser
source_parsers = {
'.md': CommonMarkParser,
}
source_suffix = ['.rst', '.md']
附、参考链接
sphinx_bootstrap_theme官方:https://github.com/ryan-roemer/sphinx-bootstrap-theme
sphinx_bootstrap_theme风格网站:https://bootswatch.com/
参考教程:https://www.xncoding.com/2017/01/22/fullstack/readthedoc.html