|
@@ -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".
|