Sphinx 中文搜索优化和中文pdf生成

一、sphinx-doc 中文搜索优化

  1. 升级 sphinx 至最新版本 pip install Sphinx==1.8.1
  2. config.py 中添加如下参数
# Language to be used for generating the HTML full-text search index.
html_search_language = 'zh'

# A dictionary with options for the search language support, empty by default.
html_search_options = {'dict': 'user_dict'}
  1. config.py的同级目录创建user_dict文件,user_dict格式如下:
# 格式说明, 一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
# 详见 https://github.com/fxsjy/jieba
创新办 3 i
云计算 5
凱特琳 nz
台中
  1. 使用命令编译文档
make html
  1. 上传文件
    将编译好的_xxx/html/searchindex.js文件上传到站点即可

二、自动生成 PDF

1. 环境准备

由于 sphinx 编译 PDF 的过程中使用了 latexpdf 组件,该组件在windows/macOS/Linux上安装方式和使用方式均有不同,建议直接使用 Docker 环境来编译。
方法一:使用 Dockerfile 自主编译 image
创建Dockerfile, 内容如下:

FROM python:3.6

RUN apt-get update && \
    apt-get install -y git mercurial texlive-full xzdec && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* && \
    pip install sphinx sphinx-rtd-theme PyYAML

编译 Dockerfile:

docker build -t sphinx-pdf-zh .

方法二:使用 Dockerhub 上编译好的镜像

如遇网络问题,请自行解决。

docker pull iccccing/sphinx-pdf-zh

2. 参数设置

为了满足中文编码的支持,需要在config.py中设置如下参数:

# -- Options for LaTeX output ---------------------------------------------
# 以下为LaTeX语法,可以配置编码格式、字体等,详解请自行百度
latex_elements = {
'preamble': '''
\\hypersetup{unicode=true}
\\usepackage{CJKutf8}
\\AtBeginDocument{\\begin{CJK}{UTF8}{gbsn}}
\\AtEndDocument{\\end{CJK}}
'''
}

3. 运行容器

运行容器,并挂载文档到容器:

# 命令中/my/doc/path 为文档所在路径,请注意修改
docker run -it -v /my/doc/path:/my/doc/path --name my-sphinx iccccing/sphinx-pdf-zh  /bin/bash

4. 开始编译

进入容器:

docker exec -it my-sphinx bash

开始编译:

# 命令中/my/doc/path 为文档所在路径,请注意修改
cd /my/doc/path
make latexpdf

5. 查看文件

进入编译结果目录_xxx/latex可以看到xxx.pdf文件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,848评论 0 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 苍白的天空里云被扯碎着 远山调好的颜料干枯了 层层叠叠的揉皱的树叶萎靡着 在天幕的一角蜷缩着—— 月亮 忘记了
    今时明月_阅读 205评论 0 0
  • 快捷键:/ ,文档上是写的【÷】 Divide a value by one or more values.Rig...
    刘板栗阅读 720评论 0 0
  • 终究还是失眠了。在将要入睡的那一刻,窗外谁的摩托车报警声声生生地把那好不容易集聚的睡意四分五裂、五马分尸。 翻来覆...
    梦1212阅读 662评论 0 1