Browse Source

Move docs contribution guides from the README to Contributing

- Edited building_the_manual to make the content more explicit
- Added some links to the README to help them get started contributing
Nathan Lovato 4 years ago
parent
commit
d74261bfb5

+ 9 - 124
README.md

@@ -15,134 +15,19 @@ configuration, you can install the
 [Dark Website Forcer](https://addons.mozilla.org/en-US/firefox/addon/dark-mode-website-switcher/)
 add-on.
 
-## Contributing changes
+## Contributing
 
-If you'd like to contribute to the official documentation, whether you want to improve existing pages or write a new one, we would ask you to follow our workflow and guidelines:
+All contributors are welcome to help on the Godot documentation.
 
-1. If you want to write a new page, please start by opening an issue or join the discussion on an open issue with your proposal. This ensures that your work matches our [content guidelines](https://docs.godotengine.org/en/latest/community/contributing/content_guidelines.html) and saves everyone time.
-2. Before writing, be sure to check out our style guides:
-    - [Writing style guide](https://docs.godotengine.org/en/latest/community/contributing/docs_writing_guidelines.html)
-    - [GDScript style guide](https://docs.godotengine.org/en/latest/tutorials/scripting/gdscript/gdscript_styleguide.html) if you write GDScript code.
-    - [C# style guide](https://docs.godotengine.org/en/latest/tutorials/scripting/c_sharp/c_sharp_style_guide.html) if you write C# code.
+To get started, head to the [Contributing section](https://docs.godotengine.org/en/latest/community/contributing/index.html) of the online manual. There, you will find all the information you need to write and submit changes.
 
-We also detail how to create new pages on the documentation [here](https://docs.godotengine.org/en/latest/community/contributing/documentation_guidelines.html).
-
-**Pull Requests should use the `master` branch by default. Only make Pull Requests against other branches (e.g. `3.2` or `2.1`) if your changes only apply to that version of Godot.**
-
-### Editing existing pages
-
-To edit an existing page, locate its .rst source file and open it in your favorite text editor. You can then commit the changes, push them to your fork and make a pull request.
-**Note that the pages in `classes/` should not be edited here, they are automatically generated from Godot's [XML class references](https://github.com/godotengine/godot/tree/master/doc/classes).**
-See [Contribute to the Class Reference](https://docs.godotengine.org/en/latest/community/contributing/updating_the_class_reference.html) for details.
-
-### Adding new pages
-
-To add a new page, create a .rst file with a meaningful name in the section you want to add a file to, e.g. `tutorials/3d/light_baking.rst`. Write its content like you would do for any other file, and make sure to define a reference name for Sphinx at the beginning of the file (check other files for the syntax), based on the file name with a "doc_" prefix (e.g. `.. _doc_light_baking:`).
-
-You should then add your page to the relevant "toctree" (table of contents, e.g. `tutorials/3d/index.rst`). By convention, the files used to define the various levels of toctree are prefixed with an underscore, so in the above example the file should be referenced in `tutorials/3d/_3d_graphics.rst`. Add your new filename to the list on a new line, using a relative path and no extension, e.g. here `light_baking`.
-
-### Sphinx and reStructuredText syntax
-
-Check Sphinx's [reST Primer](https://www.sphinx-doc.org/en/stable/rest.html) and the [official reference](http://docutils.sourceforge.net/rst.html) for details on the syntax.
-
-Sphinx uses specific reST comments to do specific operations, like defining the table of contents (`:toctree:`) or cross-referencing pages. Check the [official Sphinx documentation](https://www.sphinx-doc.org/en/stable/index.html) for more details, or see how things are done in existing pages and adapt it to your needs.
-
-### Adding images and attachments
-
-To add images, please put them in an `img/` folder next to the .rst file with a meaningful name and include them in your page with:
-```rst
-.. image:: img/image_name.png
-```
-
-Similarly, you can include attachments (like assets as support material for a tutorial) by placing them into a `files/` folder next to the .rst file, and using this inline markup:
-```rst
-:download:`myfilename.zip <files/myfilename.zip>`
-```
-
-## Building with Sphinx
-
-To build the HTML website (or any other format supported by Sphinx, like PDF, EPUB or LaTeX), you need to install [Sphinx](https://www.sphinx-doc.org/) >= 1.3 as well as (for the HTML) the [readthedocs.org theme](https://github.com/snide/sphinx_rtd_theme).
-You also need to install the Sphinx extensions defined in `requirements.txt`.
-
-Those tools are best installed using [pip](https://pip.pypa.io), Python's module installer. The Python 3 version might be provided (on Linux distros) as `pip3` or `python3-pip`. You can then run:
-
-```sh
-pip install -r requirements.txt
-```
-
-You can then build the HTML documentation from the root folder of this repository with:
-
-```sh
-make html
-```
-
-or:
-
-```sh
-make SPHINXBUILD=~/.local/bin/sphinx-build html
-```
-
-Building the documentation requires at least 8 GB of RAM to be done without swapping. If you have at least 16 GB of RAM, you can speed up compilation by using:
-
-```bash
-# On Linux/macOS
-make html SPHINXOPTS=-j2
-
-# On Windows
-set SPHINXOPTS=-j2 && make html
-```
-
-The compilation might take some time as the `classes/` folder contains many files to parse.
-
-In case of a `MemoryError` or `EOFError`, you can remove the `classes/` folder and run `make` again. This will drop the class references from the final HTML documentation but will keep the rest intact. Make sure to avoid using `git add .` in this case when working on a pull request, or the whole `classes/` folder will be removed when you make a commit. See [#3157](https://github.com/godotengine/godot-docs/issues/3157) for more details.
-
-You can then test the changes live by opening `_build/html/index.html` in your favorite browser.
-
-### Building with Sphinx on Windows
-
-On Windows, you need to:
-* Download the Python installer [here](https://www.python.org/downloads/).
-* Install Python. Don't forget to check the "Add Python to PATH" box.
-* Use the above `pip` commands.
-
-Building is still done at the root folder of this repository using the provided `make.bat`:
-```sh
-make.bat html
-```
-
-Alternatively, you can build with this command instead:
-```sh
-sphinx-build -b html ./ _build
-```
-
-Note that during the first build, various installation prompts may appear and ask to install LaTeX plugins.
-Make sure you don't miss them, especially if they open behind other windows, else the build may appear to hang until you confirm these prompts.
-
-You could also install a normal `make` toolchain (for example via MinGW) and build the docs using the normal `make html`.
-
-### Building with Sphinx and virtualenv
-
-If you want your Sphinx installation scoped to the project, you can install it using virtualenv.
-Execute this from the root folder of this repository:
-
-```sh
-virtualenv --system-site-packages env/
-. env/bin/activate
-pip install -r requirements.txt
-```
-
-Then do `make html` like above.
-
-### Rebuilding automatically on changes
-
-To build the documentation every time you save your changes, install
-[watchexec](https://github.com/watchexec/watchexec) then run the following
-command in this directory:
-
-```sh
-watchexec make html
-```
+Here are some quick links to the areas you might be interested in:
 
+1. [Contributing to the online manual](https://docs.godotengine.org/en/latest/community/contributing/documentation_guidelines.html)
+2. [Contributing to the class reference](https://docs.godotengine.org/en/latest/community/contributing/updating_the_class_reference.html)
+3. [Writing guidelines](https://docs.godotengine.org/en/latest/community/contributing/docs_writing_guidelines.html)
+4. [Translating the documentation](https://docs.godotengine.org/en/latest/community/contributing/editor_and_docs_localization.html)
+    
 ## License
 
 At the exception of the `classes/` folder, all the content of this repository is licensed under the Creative Commons Attribution 3.0 Unported license ([CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)) and is to be attributed to "Juan Linietsky, Ariel Manzur and the Godot community".

+ 112 - 0
community/contributing/building_the_manual.rst

@@ -0,0 +1,112 @@
+.. _doc_building_the_manual:
+
+Building the manual with Sphinx
+===============================
+
+This page explains how to build a local copy of the Godot manual using the
+Sphinx docs engine. This allows you to have local HTML files and build the
+documentation as a PDF, EPUB, or LaTeX file, for example.
+
+To get started, you need to install:
+
+1. `Sphinx <https://www.sphinx-doc.org/>`__
+2. To build the docs as HTML files, the `readthedocs.org theme
+   <https://github.com/snide/sphinx_rtd_theme>`__
+3. The Sphinx extensions defined in this repository's ``requirements.txt`` file
+
+We recommend using `pip <https://pip.pypa.io>` _, Python’s package manager to
+install all these tools. It comes pre-installed with `Python
+<https://www.python.org/>`__. Ensure that you install and use Python 3.
+
+.. code:: sh
+
+   pip install -r requirements.txt
+
+.. note:: On Linux distributions, you may need to write ``pip3`` instead of
+          ``pip`` because you generally have both Python 2 and 3 installed on
+          your system. Alternatively, you can explicitly ask Python 3 to execute
+          its version of pip as a module like so: ``python3 -m pip``.
+
+With the programs installed, you can build the HTML documentation from the root
+folder of this repository with the following command:
+
+.. code:: sh
+
+   make html
+
+If you run into errors, you may try the following command:
+
+.. code:: sh
+
+   make SPHINXBUILD=~/.local/bin/sphinx-build html
+
+Building the documentation requires at least 8 GB of RAM to run without disk
+swapping, which slows it down. If you have at least 16 GB of RAM, you can speed
+up compilation by running:
+
+.. code:: bash
+
+   # On Linux/macOS
+   make html SPHINXOPTS=-j2
+
+   # On Windows
+   set SPHINXOPTS=-j2 && make html
+
+The compilation will take some time as the ``classes/`` folder contains hundreds
+of files.
+
+You can then browse the documentation by opening ``_build/html/index.html`` in
+your web browser.
+
+In case you of a ``MemoryError`` or ``EOFError``, you can remove the
+``classes/`` folder and run ``make`` again. This will drop the class references
+from the final HTML documentation but will keep the rest intact.
+
+.. note:: If you delete the ``classes/`` folder, do not use ``git add .`` when
+          working on a pull request or the whole ``classes/`` folder will be
+          removed when you commit. See `#3157
+          <https://github.com/godotengine/godot-docs/issues/3157>`__ for more
+          detail.
+
+
+Building with Sphinx on Windows
+-------------------------------
+
+On Windows, you need to:
+
+1. Download the Python installer `here <https://www.python.org/downloads/>`__.
+2. Install Python. Be sure to check the “Add Python to PATH” checkbox.
+3. Use the above ``pip`` commands to install required programs.
+
+To build the documentation, open the root directory of this repository in your
+command line and execute ``make.bat`` like so:
+
+.. code:: sh
+
+   make.bat html
+
+Alternatively, you can build the documentation by running the sphinx-build
+program manually:
+
+.. code:: sh
+
+   sphinx-build -b html ./ _build
+
+Note that during the first build, various installation prompts may appear and
+ask to install LaTeX plugins. Make sure you don’t miss them, especially if they
+open behind other windows. The build may hang until you confirm these prompts.
+
+Building with Sphinx and virtualenv
+-----------------------------------
+
+If you want your Sphinx installation scoped to the project, you can install
+sphinx-build using virtualenv. To do so, run this command from this repository's
+root folder:
+
+.. code:: sh
+
+   virtualenv --system-site-packages env/
+   . env/bin/activate
+   pip install -r requirements.txt
+
+Then, run ``make html`` as shown above.

+ 78 - 0
community/contributing/documentation_guidelines.rst

@@ -59,6 +59,84 @@ and to log in to use it. Once logged in, you can propose change like so:
 Another contributor will review your changes and merge them into the docs if
 they're good. They may also make changes or ask you to do so before merging.
 
+Contributing changes
+--------------------
+
+**Pull Requests should use the ``master`` branch by default. Only make
+Pull Requests against other branches (e.g. ``2.1`` or ``3.0``) if your
+changes only apply to that specific version of Godot.**
+
+Though arguably less convenient to edit than a wiki, this Git repository
+is meant to receive pull requests to always improve the documentation,
+add new pages, etc. Having direct access to the source files in a
+revision control system is a big plus to ensure the quality of our
+documentation.
+
+Editing existing pages
+~~~~~~~~~~~~~~~~~~~~~~
+
+To edit an existing page, locate its .rst source file and open it in
+your favorite text editor. You can then commit the changes, push them to
+your fork and make a pull request. **Note that the pages in ``classes/``
+should not be edited here, they are automatically generated from
+Godot’s**\ `XML class
+references <https://github.com/godotengine/godot/tree/master/doc/classes>`__\ **.**
+See `Contribute to the Class
+Reference <https://docs.godotengine.org/en/latest/community/contributing/updating_the_class_reference.html>`__
+for details.
+
+Adding new pages
+~~~~~~~~~~~~~~~~
+
+To add a new page, create a .rst file with a meaningful name in the
+section you want to add a file to,
+e.g. \ ``tutorials/3d/light_baking.rst``. Write its content like you
+would do for any other file, and make sure to define a reference name
+for Sphinx at the beginning of the file (check other files for the
+syntax), based on the file name with a “doc\_” prefix
+(e.g. ``.. _doc_light_baking:``).
+
+You should then add your page to the relevant “toctree” (table of
+contents, e.g. \ ``tutorials/3d/index.rst``). By convention, the files
+used to define the various levels of toctree are prefixed with an
+underscore, so in the above example the file should be referenced in
+``tutorials/3d/_3d_graphics.rst``. Add your new filename to the list on
+a new line, using a relative path and no extension, e.g. here
+``light_baking``.
+
+Sphinx and reStructuredText syntax
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Check Sphinx’s `reST
+Primer <https://www.sphinx-doc.org/en/stable/rest.html>`__ and the
+`official reference <http://docutils.sourceforge.net/rst.html>`__ for
+details on the syntax.
+
+Sphinx uses specific reST comments to do specific operations, like
+defining the table of contents (``:toctree:``) or cross-referencing
+pages. Check the `official Sphinx
+documentation <https://www.sphinx-doc.org/en/stable/index.html>`__ for
+more details, or see how things are done in existing pages and adapt it
+to your needs.
+
+Adding images and attachments
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To add images, please put them in an ``img/`` folder next to the .rst
+file with a meaningful name and include them in your page with:
+
+.. code:: rst
+
+   .. image:: img/image_name.png
+
+Similarly, you can include attachments (like assets as support material
+for a tutorial) by placing them into a ``files/`` folder next to the
+.rst file, and using this inline markup:
+
+.. code:: rst
+
+   :download:`myfilename.zip <files/myfilename.zip>`
+
 What is the Godot documentation
 -------------------------------
 

+ 1 - 0
community/contributing/index.rst

@@ -17,3 +17,4 @@ Contributing
    updating_the_class_reference
    class_reference_writing_guidelines
    editor_and_docs_localization
+   building_the_manual