@20200115

官网

Sphinx 是 Sql Phrase Index (查询词组索引)的缩写,Sphinx 是一个基于 Sql 的全文检索引擎。

引用一段 Sphinx 生成文档的优点包括:

丰富的输出格式:支持输出为 HTML,LaTeX (可转换为PDF), manual pages(man), 纯文本等若干种格式
完备的交叉引用:语义化的标签,并对函式,类,引文,术语以及类似片段消息可以自动化链接
明晰的分层结构:轻松定义文档树,并自动化链接同级/父级/下级文章
美观的自动索引:可自动生成美观的模块索引
精确的语法高亮:基于 Pygments 自动生成语法高亮
开放的扩展:支持代码块的自动测试,自动包含 Python 的模块自述文档

全文检索分两个过程

索引创建(Indexing)和搜索索引(Search)

索引创建:将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程

搜索索引:得到用户的查询请求,搜索创建的索引,然后返回结果的过程

http://www.sphinx-doc.org/en/master/

配置文档

https://zh-sphinx-doc.readthedocs.io/en/latest/contents.html


环境

CentOS-7.4
    Python 3.5+
    pip
    nginx
    mysql-8


安装

方法一,使用 rpm 包安装

# 安装 python3yum install python3# 安装 pipcurl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py# 更换 pip 源pip install psm --trusted-host mirrors.aliyun.com
psm ls
psm use qinghua# 更换虚拟环境中的源vi /root/Pipfile
[[source]]
name = "pypi-tsinghua"
url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
verify_ssl = true# 安装 Sphinx
yum install python-sphinx
pip install sphinx sphinx-autobuild sphinx_rtd_theme
sphinx-build --version

查找 python-sphinx 依赖软件

rpm -q --requires -p python-sphinx-1.1.3-11.el7.noarch.rpm /usr/bin/python
python(abi) = 2.7
python-docutils
python-jinja2
python-pygments
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

方法二,使用 pip 安装 whl

pip install -U Sphinx
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting SphinxDownloading http://mirrors.aliyun.com/pypi/packages/7d/66/a4af242b4348b729b9d46ce5db23943ce9bca7da9bbe2ece60dc27f26420/Sphinx-1.8.5-py2.py3-none-any.whl (3.1 MB)|████████████████████████████████| 3.1 MB 1.5 MB/s
Collecting snowballstemmer>=1.1Downloading http://mirrors.aliyun.com/pypi/packages/7d/4b/cdf1113a0e88b641893b814e9c36f69a6fda28cd88b62c7f0d858cde3166/snowballstemmer-2.0.0-py2.py3-none-any.whl (97 kB)|████████████████████████████████| 97 kB 7.8 MB/s
Collecting babel!=2.0,>=1.3Downloading http://mirrors.aliyun.com/pypi/packages/15/a1/522dccd23e5d2e47aed4b6a16795b8213e3272c7506e625f2425ad025a19/Babel-2.8.0-py2.py3-none-any.whl (8.6 MB)|████████████████████████████████| 8.6 MB 11.0 MB/s
Collecting Jinja2>=2.3Downloading http://mirrors.aliyun.com/pypi/packages/27/24/4f35961e5c669e96f6559760042a55b9bcfcdb82b9bdb3c8753dbe042e35/Jinja2-2.11.1-py2.py3-none-any.whl (126 kB)|████████████████████████████████| 126 kB 11.9 MB/s
Requirement already satisfied, skipping upgrade: setuptools in /usr/lib/python2.7/site-packages (from Sphinx) (42.0.2)
Collecting packagingDownloading http://mirrors.aliyun.com/pypi/packages/62/0a/34641d2bf5c917c96db0ded85ae4da25b6cd922d6b794648d4e7e07c88e5/packaging-20.3-py2.py3-none-any.whl (37 kB)
Collecting Pygments>=2.0Downloading http://mirrors.aliyun.com/pypi/packages/be/39/32da3184734730c0e4d3fa3b2b5872104668ad6dc1b5a73d8e477e5fe967/Pygments-2.5.2-py2.py3-none-any.whl (896 kB)|████████████████████████████████| 896 kB 5.9 MB/s
Collecting alabaster<0.8,>=0.7Downloading http://mirrors.aliyun.com/pypi/packages/10/ad/00b090d23a222943eb0eda509720a404f531a439e803f6538f35136cae9e/alabaster-0.7.12-py2.py3-none-any.whl (14 kB)
Collecting imagesizeDownloading http://mirrors.aliyun.com/pypi/packages/31/b2/b5522a0c8d11e4aff83f8342f3f0dea68c2fb25aa44403e420587f0ce204/imagesize-1.2.0-py2.py3-none-any.whl (4.8 kB)
Collecting requests>=2.0.0Downloading http://mirrors.aliyun.com/pypi/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl (58 kB)|████████████████████████████████| 58 kB 5.4 MB/s
Collecting sphinxcontrib-websupportDownloading http://mirrors.aliyun.com/pypi/packages/2a/59/d64bda9b7480a84a3569be4dde267c0f6675b255ba63b4c8e84469940457/sphinxcontrib_websupport-1.1.2-py2.py3-none-any.whl (39 kB)
Collecting docutils>=0.11Downloading http://mirrors.aliyun.com/pypi/packages/81/44/8a15e45ffa96e6cf82956dd8d7af9e666357e16b0d93b253903475ee947f/docutils-0.16-py2.py3-none-any.whl (548 kB)|████████████████████████████████| 548 kB 3.1 MB/s
Requirement already satisfied, skipping upgrade: typing; python_version < "3.5" in /usr/lib/python2.7/site-packages (from Sphinx) (3.7.4.1)
Requirement already satisfied, skipping upgrade: six>=1.5 in /usr/lib/python2.7/site-packages (from Sphinx) (1.14.0)
Collecting pytz>=2015.7Downloading http://mirrors.aliyun.com/pypi/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509 kB)|████████████████████████████████| 509 kB 9.2 MB/s
Collecting MarkupSafe>=0.23Downloading http://mirrors.aliyun.com/pypi/packages/fb/40/f3adb7cf24a8012813c5edb20329eb22d5d8e2a0ecf73d21d6b85865da11/MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl (24 kB)
Collecting pyparsing>=2.0.2Downloading http://mirrors.aliyun.com/pypi/packages/8a/bb/488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d/pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)|████████████████████████████████| 67 kB 7.7 MB/s
Collecting idna<3,>=2.5Downloading http://mirrors.aliyun.com/pypi/packages/89/e3/afebe61c546d18fb1709a61bee788254b40e736cff7271c7de5de2dc4128/idna-2.9-py2.py3-none-any.whl (58 kB)|████████████████████████████████| 58 kB 2.4 MB/s
Collecting chardet<4,>=3.0.2Downloading http://mirrors.aliyun.com/pypi/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133 kB)|████████████████████████████████| 133 kB 15.2 MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1Downloading http://mirrors.aliyun.com/pypi/packages/e8/74/6e4f91745020f967d09332bb2b8b9b10090957334692eb88ea4afe91b77f/urllib3-1.25.8-py2.py3-none-any.whl (125 kB)|████████████████████████████████| 125 kB 12.8 MB/s
Collecting certifi>=2017.4.17Downloading http://mirrors.aliyun.com/pypi/packages/57/2b/26e37a4b034800c960a00c4e1b3d9ca5d7014e983e6e729e33ea2f36426c/certifi-2020.4.5.1-py2.py3-none-any.whl (157 kB)|████████████████████████████████| 157 kB 13.0 MB/s
Installing collected packages: snowballstemmer, pytz, babel, MarkupSafe, Jinja2, pyparsing, packaging, Pygments, alabaster, imagesize, idna, chardet, urllib3, certifi, requests, sphinxcontrib-websupport, docutils, SphinxAttempting uninstall: chardetFound existing installation: chardet 2.2.1Uninstalling chardet-2.2.1:Successfully uninstalled chardet-2.2.1
Successfully installed Jinja2-2.11.1 MarkupSafe-1.1.1 Pygments-2.5.2 Sphinx-1.8.5 alabaster-0.7.12 babel-2.8.0 certifi-2020.4.5.1 chardet-3.0.4 docutils-0.16 idna-2.9 imagesize-1.2.0 packaging-20.3 pyparsing-2.4.7 pytz-2019.3 requests-2.23.0 snowballstemmer-2.0.0 sphinxcontrib-websupport-1.1.2 urllib3-1.25.8

初始化

mkdir /var/www/Sphinxcd /var/www/Sphinxsphinx-quickstarttype【也可以再编辑 vi conf.py 】> 独立的源文件和构建目录(y/n) [n]: y> 项目名称: Sphinx> 作者名称: UXmall> 项目发行版本 []: 0.1https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language> 项目语种 [en]: zh_CN

目录结构

# tree
.
├── build           # 文件夹,当你执行 make html 的时候,生成的 html 静态文件都存放在这里
├── make.bat        # 文件,
├── Makefile        # 文件,编译用,make 命令时,可以使用这些指令来构建文档输出
└── source          # 文件夹,文档源文件全部应全部放在 source 根目录下├── conf.py     # 文件,Sphinx 的配置文件,是 read the docs 的配置文件;├── index.rst   # 文件,网站首页├── _static     # 文件夹,_static 是放置一些图片或者其他文件;└── _templates  # 文件夹,

功能

开启 sys 和 os 模块

vim conf.py
* 配置主题
html_theme = 'alabaster'* 支持 LaTeX
* 支持中文检索
extensions = ['chinese_search']source_suffix = ['.rst', '.md']

【安装】pandoc

yum install pandoc

利用 pandoc 转换文件

利用 pandoc 将之前的 markdown 格式的博客源文件转换成 rst 格式

# 语法
pandoc -s -t rst --toc markdown.md -o index.rst#
pandoc -s -t rst --toc myshell-note.md -o myshell-note.rstls
conf.py  index.rst  myshell-note.md  myshell-note.rst  _static  _templates

编辑 index.rst,进行引用文件

.. toctree:::maxdepth: 2:caption: Contents:myshell-note

【生成 PDF】

# 安装依赖库pip install rst2pdf# 编辑 conf.py,增加或修改如下配置:vi conf.py# 编辑 Makefile,增加如下代码:vi Makefile# 执行生成PDF
make pdf
python -m SimpleHTTPServer 9527

【生成 Slide】

# 安装依赖库pip install hieroglyph# 编辑 conf.py,修改如下配置:vi conf.py# 编辑 Makefile,增加如下代码:vi Makefile#执行生成 Slidesmake slides
python -m SimpleHTTPServer 9527

配置

_build              # 存放最终构建生成的静态html页面
_static             # 存放图片、logo等相关资源文件
_templates          # 存放模板文件
conf.py             # 项目配置文件
index.rst           # 文档首页
make.bat            # windows下的构建脚本
Makefile            # linux下的构建脚本Makefile
编译过代码的开发人员应该非常熟悉这个文件,如果不熟悉,那么可以将它看作是一个包含指令的文件,在使用 make 命令时,可以使用这些指令来构建文档输出。_build
这是触发特定输出后用来存放所生成的文件的目录。_static
所有不属于源代码(如图像)一部分的文件均存放于此处,稍后会在构建目录中将它们链接在一起。conf.py
这是一个 Python 文件,用于存放 Sphinx 的配置值,包括在终端执行 sphinx-quickstart 时选中的那些值。index.rst
文档项目的 root 目录。如果将文档划分为其他文件,该目录会连接这些文件。
This is a Title
===============
That has a paragraph about a main subject and is set when the '='
is at least the same length of the title itself.Subject Subtitle
----------------
Subtitles are set with '-' and are required to have the same length
of the subtitle itself, just like titles.Lists can be unnumbered like:* Item Foo* Item BarOr automatically numbered:#. Item 1#. Item 2Inline Markup
-------------
Words can have *emphasis in italics* or be **bold** and you can define
code samples with back quotes, like when you talk about a command: ``sudo``
gives you super user powers!

概念

source
数据源,数据是从什么地方来的。index
索引,当有数据源之后,从数据源处构建索引。索引实际上就是相当于一个字典检索。有了整本字典内容以后,才会有字典检索。searchd
提供搜索查询服务。它一般是以deamon的形式运行在后台的。indexer
构建索引的服务。当要重新构建索引的时候,就是调用indexer这个命令。attr
属性,属性是存在索引中的,它不进行全文索引,但是可以用于过滤和排序。

修改主题

主题一

# Sphinx 提供三个主题 默认主题 alabaster
# 安装 sphinx_rtd_theme 主题pip install sphinx_rtd_theme# 在 conf.py 之中更改主题
#
#vi conf.pyimport sphinx_rtd_themeextensions = [..."sphinx_rtd_theme",
]html_theme = "sphinx_rtd_theme"

主题二

# Sphinx 提供三个主题 默认主题 alabaster
# 安装 sphinx-better-theme 主题pip install sphinx-better-theme# 在 conf.py 之中更改主题
#
#vi conf.pyimport sphinx_rtd_themeextensions = [..."sphinx-better-theme",
]html_theme = "sphinx-better-theme"

主题三

# Sphinx 提供三个主题 默认主题 alabaster
# 安装 sphinx-bootstrap-theme 主题pip install sphinx-bootstrap-theme# 在 conf.py 之中更改主题
#
#vi conf.pyimport sphinx_rtd_themeextensions = [..."'sphinx-bootstrap-theme'",
]html_theme = "'sphinx-bootstrap-theme'"

配置 logo

# 在 conf.py 之中指定 logo 图片 ,相对于 conf.py 的文件路径vi conf.py
html_logo = './_static/logo.jpg'

配置文档自动生成

vi conf.py
extensions = ['sphinx.ext.autodoc']# 然后在需要的页面中添加vi index.rst
.. automodule:: my_package:members:# my_package 为代码的报名,有了这样的配置在生成文档时会向* :ref:modindex 指向的包索引页面中添加相应的索引# 注:autodoc 是自动生成的,如果需要手动生成,可以使用 sphinx-apidoc 这个命令来完成

定义文档结构

https://zh-sphinx-doc.readthedocs.io/en/latest/tutorial.html#id1

vi index.rst

有两个文本 file1.rst 和 file2.rst 他们的内容如下

添加内容
    运行创建工具

sphinx-build -b html sourcedir builddir
sphinx-build -b html ~/Sphinx/sourcedir /var/www/UXmallSphinx
make html

文档对象
    基本配置
    自动文档
    其他

参考:

http://zhengkun.info/2014/02/10/sphinx-doc/

http://www.pythondoc.com/sphinx/rest.html

https://www.cnblogs.com/xiaofan1949/p/10497813.html

https://docs.phpmyadmin.net/zh_CN/latest/index.html

https://blog.51cto.com/kaliarch/2311074?source=drt

【CentOS-7.4】Sphinx 安装与简单配置相关推荐

  1. Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)

    Centos 6.5下一个SNMP简单配置(snmp protocol v3.监控宝) jom_ch@2014/7/25 1,安装 >yum -y install net-snmp net-sn ...

  2. python环境的搭建以及pycharm的安装和简单配置

    python环境的搭建以及pycharm的安装和简单配置 Python的环境搭建 PIP工具的使用 pip介绍 pip的使用 查看pip版本 普通安装 pip升级 指定版本安装 卸载已安装的库 列出已 ...

  3. 「macOS」我的终端我做主——iTerm2+Homebrew+oh-my-zsh+Powerline安装及简单配置

    「macOS」我的终端我做主--iTerm2+Homebrew+oh-my-zsh+Powerline安装及简单配置 一.iTerm2安装和简单配置 01.下载iTerm2 02.安装iTerm2 0 ...

  4. Nginx下载安装及简单配置

    Nginx下载安装及简单配置 下载 配置Nginx 下载 Nginx官网下载路径 解压后目录如下: 配置Nginx 打开 conf/nginx.conf 配置文件 添加一个server,进行简单的测试 ...

  5. Webpack4 学习笔记 - 01:webpack的安装和简单配置

    安装 webpack 新建一个Demo文件夹,执行初始化: npm init 在Demo文件夹里安装 webpack 和 webpack-cli : npm install webpack webpa ...

  6. LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用

    LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...

  7. PostgreSQL安装和简单配置

    PostgreSQL安装与使用 目录 依赖包的安装 源码编译和安装 初始化数据库集簇 简单配置 依赖包安装 PostgreSQL源码安装依赖以下四个软件包 readline zlib flex bis ...

  8. CentOS7 下MariaDB安装与简单配置(最新)

    前言 MySQL和MariaDB的区别: LAMP架构盛极一时,这离不开MySQL的免费与易用,但是在Oracle收购了Sun之后,很多公司开始担忧MySQL的开源前景,而最近Oracle进一步闭源的 ...

  9. CentOS 7 源码安装 apache 及配置

    CentOS 7 源码安装 apache 及调试 作者:闫涛 E-mail:coderyantao@qq.com 备注:实验环境为selinux关闭.firewalld已关闭.生产环境不得关闭fire ...

  10. Centos7下Mysql 安装及简单配置

    本文主要介绍,centos7下,用二进制包安装mysql,并进行简单配置.分为如下几步: 权限配置 具体安装 简单配置,主要修改密码和解决远程连接问题 常用命令,开启关闭服务 参考文章 1. 权限配置 ...

最新文章

  1. 高精度地图量产难,四维图新利用优势准备实现突破
  2. 【Android 应用开发】BluetoothSocket详解
  3. 再谈select, iocp, epoll,kqueue及各种I/O复用机制 - Shallway - 博客频道 - CSDN.NET
  4. kaggle房价预测特征意思_R语言实战:复杂数据处理和分析之Kaggle房价预测
  5. 智慧城市不是“交钥匙”工程 信息技术是根本
  6. python函数示例_使用Python中的示例的input()函数
  7. html时间自动,编辑自动结束时间.html
  8. 关于插件管理器Alcatraz的一些问题
  9. 一个上帝视角的java游戏_从上帝视角看Java如何运行
  10. 【动态规划】多重背包问题:P1077摆花
  11. 如何判断两物体加速度相等_高中物理知识点总结解题技巧:关联物体问题的求解方法...
  12. 设计模式 访问者模式
  13. html游戏让目标人物移动,如何用html5编写鼠标事件与游戏人物移动
  14. poi-tl生成word文档,java生成word文档
  15. RH10M漏电故障保护继电器
  16. mysql存储过程变量定义_存储过程中MySQL变量定义和赋值
  17. 菜鸟教程python100题:递归函数
  18. kali升级操作系统
  19. 解决ubantu 安装gitlab 失败 Unable to locate package gitlab-ce
  20. GTD全球恐怖主义可视化系统

热门文章

  1. 随手写程序——分布拟合的卡方检验法
  2. Replace Autoprefixer browsers option to Browserslist config.
  3. 苹果MacBook Air M2开箱测评 M2版MacBook Air真实体验感受
  4. 【Flutter小记9】flutter 打包的apk在某些真机无法安装或打开
  5. OpenCV图像梯度——Scharr算子(cv2.Scharr())
  6. 饭后小甜点leetcode——堆
  7. 摸鱼还要提醒?用Python整个倒计时界面自觉摸鱼~
  8. SICP 练习1.8
  9. 免费的两种https证书申请和安装
  10. 数据库 实验二 数据库的单表查询和连接查询