write_docs_cn.rst 6.9 KB
Newer Older
L
Luo Tao 已提交
1 2 3
#############
如何贡献文档
#############
Y
Yu Yang 已提交
4

_青葱's avatar
Adjust  
_青葱 已提交
5
PaddlePaddle的文档包括中英文两个部分。文档都是通过 ``cmake`` 驱动 ``sphinx`` 编译生成,也可以利用paddlepaddle.org工具来编译和预览文档。
Y
Yu Yang 已提交
6

L
Luo Tao 已提交
7 8
如何构建文档
============
Y
Yu Yang 已提交
9

_青葱's avatar
_青葱 已提交
10
PaddlePaddle的文档构建有两种方式,分别为使用paddlepaddle.org工具和不使用paddlepaddle.org工具,两种方式都有各自的优点,前者方便预览,后者方便开发者进行调试。这两种方式中又分别有使用docker和不使用docker的两种构建方法。
11 12 13


使用PaddlePaddle.org工具
_青葱's avatar
_青葱 已提交
14 15
------------------------
这个是目前推荐的使用方法。除了可以自动编译文档,还可以直接在网页中预览文档,需要注意的是,采用后续说明的其它方式虽然也可以预览文档,但是文档的样式与官网文档是不一致的,使用PaddlePaddle.org工具进行编译才能产生与官网文档样式一致的预览效果。
16

_青葱's avatar
_青葱 已提交
17
PaddlePaddle.org工具可以配合Docker使用,需要在系统里先安装好Docker工具包。Docker安装请参考 `Docker的官网 <https://docs.docker.com/>`_ 。安装好Docker之后即可用以下命令启动工具
18 19 20

..  code-block:: bash

21
    mkdir paddlepaddle # Create paddlepaddle working directory
22
    cd paddlepaddle
23 24 25 26 27 28

    # Clone the content repositories
    git clone https://github.com/PaddlePaddle/Paddle.git
    git clone https://github.com/PaddlePaddle/book.git
    git clone https://github.com/PaddlePaddle/models.git
    git clone https://github.com/PaddlePaddle/Mobile.git
29

30 31
    # Please specify the working directory through -v
    docker run -it -p 8000:8000 -v `pwd`:/var/content paddlepaddle/paddlepaddle.org:latest
32

33
注意: PaddlePaddle.org 会在 -v (volume) 指定的内容存储库运行命令
34
之后再用网页连到http://localhost:8000就可以在网页上生成需要的文档
35
编译后的文件将被存储在工作目录 <paddlepaddle working directory>/.ppo_workspace/content。
Y
Yu Yang 已提交
36

_青葱's avatar
Adjust  
_青葱 已提交
37
如果不想使用Docker,你还可以通过运行Django框架直接激活工具的服务器。使用下面的命令来运行它。
38 39 40

..  code-block:: bash

41
    mkdir paddlepaddle # Create paddlepaddle working directory
42
    cd paddlepaddle
43 44 45 46 47 48 49 50 51 52

    # Clone the content repositories and PaddlePaddle.org
    git clone https://github.com/PaddlePaddle/Paddle.git
    git clone https://github.com/PaddlePaddle/book.git
    git clone https://github.com/PaddlePaddle/models.git
    git clone https://github.com/PaddlePaddle/Mobile.git
    git clone https://github.com/PaddlePaddle/PaddlePaddle.org.git

    # Please specify the PaddlePaddle working directory. In the current setting, it should be pwd
    export CONTENT_DIR=<path_to_paddlepaddle_working_directory>
53 54 55 56 57
    export ENV=''
    cd PaddlePaddle.org/portal/
    pip install -r requirements.txt
    python manage.py runserver

58
工具服务器将读取环境变量 CONTENT_DIR 搜索代码库。请指定的PaddlePaddle工作目录给环境变量 CONTENT_DIR。
59
之后再用网页连到http://localhost:8000就可以在网页上生成需要的文档。
60 61 62
编译后的文件将被存储在工作目录 <paddlepaddle working directory>/.ppo_workspace/content。

想了解更多PaddlePaddle.org工具的详细信息,可以 `点击这里 <https://github.com/PaddlePaddle/PaddlePaddle.org/blob/develop/README.cn.md>`_ 。
63

_青葱's avatar
_青葱 已提交
64
不使用PaddlePaddle.org工具
_青葱's avatar
_青葱 已提交
65
--------------------------
Y
Yu Yang 已提交
66

67
使用Docker构建PaddlePaddle的文档,需要在系统里先安装好Docker工具包。Docker安装请参考 `Docker的官网 <https://docs.docker.com/>`_ 。该方法与 `从源码编译PaddlePaddle <http://paddlepaddle.org/docs/develop/documentation/zh/build_and_install/build_from_source_cn.html>`_ 相似,通过从源码中构建可用于编译PaddlePaddle文档的Docker镜像并运行,在进入Docker容器后使用源码中的脚本构建PaddlePaddle文档,具体步骤如下:
Y
Yu Yang 已提交
68

69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
.. code-block:: bash

   mkdir paddle
   cd paddle
   git clone https://github.com/PaddlePaddle/Paddle.git
   cd Paddle

   # 从源码中构建可用于编译PaddlePaddle文档的Docker镜像
   docker build -t paddle:dev .
   docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=OFF" paddle:dev /bin/bash

   # 进入Docker容器后使用build.sh脚本构建PaddlePaddle文档
   bash -x /paddle/paddle/scripts/docker/build.sh

注:上述命令把当前目录(源码根目录)映射为 container 里的 :code:`/paddle` 目录。

编译完成后,进入 ``paddle/build/doc/v2`` 目录,该目录下生成了 ``cn/html/`` 、 ``en/html`` 以及 ``api/en/html`` 共三个子目录,分别进入这些目录下,执行以下命令:

.. code-block:: bash

   python -m SimpleHTTPServer 8088

在浏览器中输入http://localhost:8088就可以看到编译生成的中/英文的文档页面和英文的API页面。
Y
Yu Yang 已提交
92

_青葱's avatar
_青葱 已提交
93
如果不想使用Docker,也可以使用以下命令直接构建PaddlePaddle文档,即
Q
qijun 已提交
94

_青葱's avatar
_青葱 已提交
95
.. code-block:: bash
Q
qijun 已提交
96

_青葱's avatar
_青葱 已提交
97 98
   mkdir paddle
   cd paddle
_青葱's avatar
_青葱 已提交
99
   git clone https://github.com/PaddlePaddle/Paddle.git
100
   cd Paddle
_青葱's avatar
_青葱 已提交
101 102
   mkdir -p build
   cd build
_青葱's avatar
_青葱 已提交
103
   cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_GPU=OFF -DWITH_MKL=OFF -DWITH_DOC=ON
104

_青葱's avatar
_青葱 已提交
105
   # 如果只需要构建使用文档,则执行以下命令
106 107 108
   make -j $processors gen_proto_py
   make -j $processors paddle_docs paddle_docs_cn

_青葱's avatar
_青葱 已提交
109
   # 如果只需要构建API,则执行以下命令
110 111 112 113
   make -j $processors gen_proto_py framework_py_proto
   make -j $processors copy_paddle_pybind
   make -j $processors paddle_api_docs

_青葱's avatar
_青葱 已提交
114
其中$processors代表启动和CPU核一样多的进程来并行编译,可以根据本机的CPU核数设置相应的值。
115

_青葱's avatar
Adjust  
_青葱 已提交
116
编译完成后,进入 ``doc/v2`` 目录,如果选择构建文档则会在该目录下生成 ``cn/html/`` 、 ``en/html`` 两个子目录,选择构建API则会生成 ``api/en/html`` 目录,分别进入这些目录下,执行以下命令:
117 118 119 120 121

.. code-block:: bash

   python -m SimpleHTTPServer 8088

122 123 124
在浏览器中输入http://localhost:8088就可以看到编译生成的中/英文的文档页面和英文的API页面。

下图为生成的英文文档首页示例。注意,示例中由于使用了sphinx的原始主题,所以页面的风格与官网并不一致,但这并不影响开发者进行调试。
Q
qijun 已提交
125

_青葱's avatar
_青葱 已提交
126
..  image:: src/doc_en.png
127 128
    :align: center
    :scale: 60 %
Y
Yu Yang 已提交
129

L
Luo Tao 已提交
130 131
如何书写文档
============
H
hedaoyuan 已提交
132

Q
qijun 已提交
133
PaddlePaddle文档使用 `sphinx`_ 自动生成,用户可以参考sphinx教程进行书写。
Y
Yu Yang 已提交
134

135
如何更新www.paddlepaddle.org
L
Luo Tao 已提交
136 137
============================

_青葱's avatar
_青葱 已提交
138 139 140
更新的文档以PR的形式提交到github中,提交方式参见 `如何贡献文档 <http://www.paddlepaddle.org/docs/develop/documentation/zh/dev/write_docs_cn.html>`_ 。
目前PaddlePaddle的develop分支的文档是自动触发更新的,用户可以分别查看最新的 `中文文档 <http://www.paddlepaddle.org/docs/develop/documentation/zh/getstarted/index_cn.html>`_ 和
`英文文档 <http://www.paddlepaddle.org/docs/develop/documentation/en/getstarted/index_en.html>`_ 。
Q
qijun 已提交
141

Y
Yu Yang 已提交
142

Q
qijun 已提交
143 144
..  _cmake: https://cmake.org/
..  _sphinx: http://www.sphinx-doc.org/en/1.4.8/