贡献指南

撰写:

田冬冬

审核:

姚家园

最近更新日期:

2023-09-05


欢迎 GMT 中文用户参与到 GMT 中文手册的维护与更新中。

维护与更新

文档的维护与更新主要包括几个方面:

  • 修正错别字、语句不通等

  • 修正文档中的错误或不清晰的描述

  • 修正 reStructuredText 文件语法错误导致的显示问题

  • 调整章节结构,使文档条理更清晰

  • 翻译、整理更多模块的文档

  • 增加示例与入门教程

可以通过如下两种方式参与文档的维护与更新:

  1. 在 GitHub 上的文档源码仓库下提交 Issue

  2. 修改文档源码并提交 Pull Request (不熟悉 Pull Request 的读者可以参考 Pull Request 流程

文档风格

文件风格

  1. 所有教程均采用 reStructuredText 语言编写,可参考 reStructuredText Cheatsheet 学习其常用语法。

  2. reStructuredText 文档的一级标题、二级标题和三级标题,分别用 =-^ 符号标识

  3. 所有 Bash 命令前应加上 Shell 提示符 $ 以表示该命令为 Shell 命令

  4. 中文字符与英文字符和数字之间应加上空格,如 中文 ABC 中文 而非 中文ABC中文中文 123 中文 而非 中文123中文

  5. 标点符号采用全角,如 等。标点符号与中文字符、英文字符以及数字之间不需加空格。

  6. 使用 UTF8 编码和 Linux 换行符

  7. 图片应在保证清晰度的前提下尽可能小

文件命名

每个源文件都会被转换成一个单独的网页。因而,确定文件名时应慎重,一旦确定,尽量不要再改动。由于 Windows 不区分文件名大小写,故而 option-B.rstoption-b.rst 在 Windows 下会出现冲突。我们使用的文件的命名规则是:

  • 文件名一律采用小写字母

  • 文件名应尽量使用单词全称,避免使用各种形式的简写

  • 若文件名中含多个单词,应使用连字符 (hyphen) - 连接

示例风格

  • 示例脚本尽量使用 Bash,非必须请勿使用 Perl、Python 等

  • 所有脚本均使用 GMT 现代模式语法

  • 所有脚本至少需要生成 PNG 格式的图片,建议使用 PNG、PDF 生成两种格式的图片,分别供网页版和 PDF 版使用

  • 所有脚本以 gmt end show 结尾

  • 示例中加入必要的注释,用于说明某个代码段、某个命令选项的功能及其他重要信息,但尽量使用简单英文,更复杂的说明应考虑写到正文中

  • 若一行命令太长,可使用反斜杠换行,并且脚本的行数要尽量小

  • 需要缩进时,应使用四个空格

文档使用 Sphinx 扩展 sphinx_gmt 提供的 gmtplot 指令自动执行脚本生成图片,同时将图片插入到文档中。该指令的常用选项有:

  • width: 图片在网页中的宽度(建议使用百分比表示,如 100%

  • caption:图片标题

  • show-code:表示是否显示代码(truefalse

该指令用法有两种:行内模式(直接在文档中写绘图代码)和脚本模式(将绘图代码写在脚本中)。

行内模式:

.. gmtplot::
    :caption: 图片标题
    :width: 80%

    gmt begin map
    gmt basemap -JX10c/10c -R0/10/0/10 -Baf
    gmt end show

脚本模式:

.. gmtplot:: /scripts/psmeca_ex1.sh
    :width: 80%

    图片标题

新增绘图实例

社区绘图实例都位于 source/examples/ 目录下,每个文件夹包含一个实例,从 ex001 开始顺序编号。例如,实例 1 的文件夹为 source/examples/ex001/,该文件夹下需要包含如下信息:

  1. 描述文件 index.rst(必须)

  2. Bash 绘图脚本,如 ex001.sh(必须)

  3. 绘图所需数据 xxx.dat (可选,数据应尽量小)

简要描述绘图意义、所用核心模块的关键语法以及绘图必需的数据等。新增实例时,请参考文档风格和已有的社区绘图实例

添加图片到图库

为了将某个图片添加到图库中,需要修改 source/gallery/gallery.yaml 文件。每个示例对应一个记录,每个记录的格式如下:

- script: path/to/script.sh
  title: 绘制 GPS 速度场
  target: examples/ex015/
  • script 指定了生成图片的脚本在 source 目录下的路径

  • title 是显示在图片下方的标题

  • target 是点击图片时要跳转的链接,可以是某个页面的路径,也可以是某个页面的锚点名称

构建文档

本手册使用基于 Python 的文档生成工具 Sphinx 构建。读者可以按照如下步骤在自己的计算机上构建得到 HTML 和 PDF 格式的文档。

  1. 安装 Anaconda

  2. 下载文档源码

    $ git clone --depth=1 https://github.com/gmt-china/GMT_docs.git
    
  3. 创建 conda 虚拟环境并安装构建文档所需的依赖

    $ cd GMT_docs
    $ conda env create -f environment.yml
    $ conda activate gmtdocs
    
  4. 下载文档所需的地学数据并配置中文支持

    警告

    执行以下脚本会修改 ~/.gmt 文件夹中的内容。执行脚本前请务必阅读脚本源码以了解该脚本具体做了什么。

    $ bash scripts/setup-ci.sh
    
  5. 编译生成 HTML 格式的文档

    $ make html
    

    编译生成的 HTML 格式的文档 build/html/ 目录。直接用浏览器打开 build/html/index.html 即可在本地预览。

  6. 安装 LaTeX 相关软件

    构建 PDF 格式的文档需要安装 LaTeX 相关软件。用户可以选择安装 TeXLive 或者更轻量级的 TinyTeX

    安装完 TeXLive 或 TinyTex 后,还需要安装构建文档所需的 LaTeX 包:

    $ bash scripts/setup-latex.sh
    
  7. 编译生成 PDF 格式的文档

    $ make latexpdf
    

    编译生成 PDF 格式的文档的路径为 build/latex/GMT_docs.pdf