12.2. Sphinx文档修改要求#

Sphinx通过其自身语法要求进行项目内容关联,本身无目录结构明确要求。 为了方便团队内部修改,按以下要求来做一致性约束,避免一些问题。

关于图片与表格的交叉引用,Sphinx 目前有多种方式可实现。 目前建议通过给内容添加 :name: 属性来实现,代码、图片、表格等都可以使用这种方式, 使用 :name: 属性来定义引用名的引用方式有3种:

  1. 通过 引用名+下划线 来实现引用,这样显示的文字为引用名,不一定合适;

  2. 通过 :ref:`引用名` 来引用,这样显示所引对像的标题;

  3. 通过 :numref:`引用名` 来引用,这样显示编码后的类型+数字序号。

12.2.1. Sphinx文档项目#

Sphinx文件项目做到对其基本的理解, 一般不需要对目录结构修改。 但章节命名一定要规范。

文件项目目录结构#

一般使用二级目录(章、节)。

├── Makefile
└── tech-src
    ├── ch01_install-sphinx-env
    │   ├── chapter.rst
    │   ├── sec01_base
    │   │   └── section.rst
    │   └── sec02_conf
    │       └── section.rst
    ├── conf.py
    └── index.rst

备注

每次新添加了rst文档,需要添加到对应的地方。不必修改,由程序自动处理。

Sphinx项目每天会定时进行自动构建检查,如果有问题会相应生成 _error.txt 文件。

警告

如果在Sphinx项目中出现 _error.txt 文件,一定要检查,将问题修改过来。

章节名称#

章名称、节名称皆为三部分,用下划线分割。第三部分可以没有,为自动生成。 修改时主要把 sig 部分修改好,其为英文词汇,简要说明章节内容。

名称示例:

ch01_sig1_ka01
sec03_sig2_k0002

或:

ch01_sig1
sec03_sig2

12.2.2. 常规内容修改说明#

对于 Sphinx 文件( .rst ) 常规内容,注意修改时断行的问题。

一般情况下一句不能太长。单句成行,在句号( )后一般要断行,方便阅读。 如果单句太长 ,则在句中合适标点后,如逗号( ),引号( ),进行断行。

英文文本依照中文方式处理。

12.2.3. 单个文件中的标题使用#

对于已经存在的 .rst 文件,一般情况下不必修改标题。

如果进行修改,或新建 .rst 格式文件,使用不超过三级标题。

标题按如下使用方式约定:

一级标题:

===================
一级标题
===================

二级标题:

二级标题
==================================

三级标题:

三级标题
---------------------------------------

12.2.4. 图片#

警告

以下的代码一般为word自动转换的结果,使用这种方式无法以居中形式显示图片,所以要进行修改。

|logo|,使用"|宏名|"的形式替换文字。

.. |logo| image:: ./logo.png

它的原理是使用“||”类似宏的方式替换指令,使rst源码看起来更简洁,但不能居中显示。

图片原文件统一存储在引用文档所在的同级目录文件夹下。

添加图片使用 figure 指令,无特殊情况的话我们书籍图片要求使用居中方式显示, 还需要添加 alt 选项指定图片的描述,用于网站中使用,以便图片加载失败时显示文字。

不要使用bmp图片 ,bmp图片在生成pdf的时候会丢失,所以不要使用bmp格式的图片。

figure 添加图片时可以使用标题与legend。一般在使用时要加入引用。

图片还可以使用 width、heigh、scale等参数,但不推荐使用,设置过width、height参数的图片, 在页面可以点击查看原图。

图片引用#

语法:

.. figure:: ./logo.png
   :alt: logo
   :align: center
   :name: OSGeoLogo

   OSGeo Logo

效果:

引用的方式是使用 :name: 定义的名字加下划线 _ ,如: OSGeoLogo_ ,效果 OSGeoLogo ; 或 :ref:`OSGeoLogo` ,效果 OSGeo Logo ; 或 :numref:`OSGeoLogo` , 效果 图 12.2.1

12.2.5. 使用CSV表格#

警告

表格与图片的处理, 关键要注意标题与引用。

为了方便修改,表格统一使用外部 CSV 格式的表格。 使用 numref 的方式进行引用,如 表 12.2.1 ,如:

.. csv-table:: 外部CSV表格示例
   :file: deploy.csv
   :widths: 5, 20
   :header-rows: 1
   :name: outcsv

引用的方式是使用 ``:name:`` 定义的名字加下划线 ``_`` ,如:

outcsv_

效果:

表 12.2.1 外部CSV表格示例#

name

备注

a1

igais/yubiao

a2

a4

osgeo/jubook

引用的方式是使用 :name: 定义的名字加下划线 _ ,如: outcsv_ , 效果 outcsv ;或使用更有意义的引用方式 :numref:`outcsv` , 效果 表 12.2.1

12.2.6. 数学表达式#

对于常见的各种文本,一般会使用图片的方式来呈现数学表达式。 在修改过程中需要将其修改为 Sphinx 支持的 Latex 方式的数学表达式。

具体使用方法参见 节 3.10 。 对于非数学类专业资料,一般使用 行内数学表达式行间数学表达式 即可,不需要公式的交叉引用。

12.2.7. 脚注#

有关脚注 (ref ),使用显示编号 [1]_ 要标记脚注位置,并在文档底部的“脚注”标题后面添加脚注正文,如下所示:

示例

Lorem ipsum [1]_ dolor sit amet ... [2]_


**脚注**

.. [1] Text of the first footnote.
.. [2] Text of the second footnote.

效果

Lorem ipsum [1] dolor sit amet ... [2]

脚注

12.2.8. 参考引文#

对于整理的资料,一般情况下借用命名脚注的方式添加参考引文。

文献列表先进行整理,整理完成的文本在文档底部添加,或者放到单独一节中。 在每条文献前添加标识 ,注意使用有意义的编码,如 [姓名:年份] , 如果是多个作者,姓名中间使用 - 分隔,如 [姓名1-姓名2:年份] 。 注意标识中不能出现空格,逗号。 一条文献一般放在一行,换行的话注意缩进。

然后在文本需要处添加文献引用。

备注

注意整理步骤,先对文献整理,添加添加文献引用; 在文档一般先出现文献引用,而文献的列表是在后面的。

示例

Lorem ipsum [RefName-Name2:1998]_ dolor sit amet.
这里是中文 [RefName3:2007] 示例。

**参考文献**

.. [RefName-Name2:1998] Book or article reference, URL or whatever.
.. [RefName3:2007] Book or article reference,
   URL or whatever.

效果

Lorem ipsum [RefName-Name2:1998] dolor sit amet. 这里是中文 [RefName3:2007] 示例。

参考文献

[RefName-Name2:1998]

Book or article reference, URL or whatever.

[RefName3:2007]

Book or article reference, URL or whatever.