2020-04-05 00:02:02 +02:00
|
|
|
# evennia-docs
|
|
|
|
|
Documentation for the Evennia MUD creation system.
|
|
|
|
|
|
2020-04-10 10:36:56 +02:00
|
|
|
This system is still WIP!
|
|
|
|
|
|
|
|
|
|
The live documentation (will in the future be) is available at `https://evennia.github.io/evennia/`.
|
|
|
|
|
|
|
|
|
|
# Editing the docs
|
|
|
|
|
|
|
|
|
|
The docs source files are `*.md` files found in `evennia/docs/source/`. They
|
|
|
|
|
are simple text files that can be edited with a normal text editor and needs to
|
|
|
|
|
be decorated with [Markdown][commonmark] syntax.
|
|
|
|
|
|
|
|
|
|
Don't edit the files in `source/api/`. These are auto-generated and your changes
|
|
|
|
|
will be lost.
|
|
|
|
|
|
2020-04-05 00:02:02 +02:00
|
|
|
|
2020-04-05 15:02:38 +02:00
|
|
|
# Building the docs
|
2020-04-05 13:00:01 +02:00
|
|
|
|
2020-04-10 10:36:56 +02:00
|
|
|
The sources in `evennia/docs/source/` are built into a pretty documentation using
|
|
|
|
|
the [Sphinx][sphinx] static generator system.
|
|
|
|
|
|
|
|
|
|
You don't necessarily _have_ to build the docs locally to commit changes to the
|
|
|
|
|
docs; they are just text files after all. But building them allows you to check
|
|
|
|
|
for yourself that syntax is correct and that your change comes out looking as
|
|
|
|
|
you expect before contributing.
|
|
|
|
|
|
|
|
|
|
## Prerequisites
|
2020-04-05 13:00:01 +02:00
|
|
|
|
2020-04-10 10:36:56 +02:00
|
|
|
### Only the main documentation
|
|
|
|
|
|
|
|
|
|
If you only want to build the main documentation pages (not the API autodocs),
|
|
|
|
|
you don't need to install Evennia itself, only the documentation resources.
|
|
|
|
|
All is done in your terminal/console.
|
|
|
|
|
|
|
|
|
|
- (Optional, but recommended): Activate a virtualenv with Python3.7.
|
|
|
|
|
- `cd` to into the `evennia/docs` folder (where this README is)
|
|
|
|
|
- Run `make install` or `pip install -r requirements.txt` to install the documentation-build
|
|
|
|
|
requirements.
|
|
|
|
|
- `make quick` - this will create html-based documentation in the new
|
|
|
|
|
folder `evennia/docs/builds/html/`.
|
|
|
|
|
- Use a web browser to open `evennia/docs/builds/html/index.html` and read the rendered docs.
|
|
|
|
|
|
|
|
|
|
### Main documentation and API docs
|
|
|
|
|
|
|
|
|
|
The full documentation includes both the doc pages and the API documentation
|
|
|
|
|
generated from the Evennia source. For this you must install Evennia and
|
|
|
|
|
initialize a new game with a default database (you don't need to have it
|
|
|
|
|
running)
|
|
|
|
|
|
|
|
|
|
- Follow the normal [Evennia Getting-Started instructions][getting-started]
|
|
|
|
|
to install Evennia. Use a virtualenv.
|
|
|
|
|
- Make sure you `cd` to the folder containing your `evennia/` repo.
|
|
|
|
|
- Create a new game folder called `gamedir` next to your regular game dir (if you
|
|
|
|
|
have the same level as your `evennia`
|
|
|
|
|
repo with `evennia --init gamedir`. Then `cd` into it and run `evennia migrate`
|
|
|
|
|
to create the database. You don't need to continue to start the game.
|
|
|
|
|
- This is how the structure should look at this point:
|
2020-04-05 13:00:01 +02:00
|
|
|
|
|
|
|
|
```
|
|
|
|
|
(top)
|
|
|
|
|
|
|
2020-04-10 10:36:56 +02:00
|
|
|
----- evennia/ (the top-level folder, where docs/ is)
|
2020-04-05 13:00:01 +02:00
|
|
|
|
|
|
|
|
|
----- gamedir/
|
|
|
|
|
```
|
|
|
|
|
|
2020-04-10 10:36:56 +02:00
|
|
|
- Go to `evennia/docs/` and run `make install` or `pip install -r requirements.txt`
|
|
|
|
|
to install the doc-building requirements into your virtualenv.
|
2020-04-05 13:00:01 +02:00
|
|
|
|
2020-04-05 15:02:38 +02:00
|
|
|
## Building locally
|
2020-04-05 13:00:01 +02:00
|
|
|
|
2020-04-05 15:02:38 +02:00
|
|
|
With your build environment set up as above, stand in the `evennia/docs` directory and run
|
|
|
|
|
|
|
|
|
|
make local
|
|
|
|
|
|
|
|
|
|
This will build the html documentation (including api docs) in the new folder
|
|
|
|
|
`evennia/docs/build/html/`. To read it, open `evennia/docs/build/html/index.html` in any web browser.
|
|
|
|
|
|
|
|
|
|
Building the api docs can be quite slow. If you are working on some doc change
|
|
|
|
|
and just want to quickly check that things came out the way you want, you can
|
|
|
|
|
also opt to only build the normal docs:
|
|
|
|
|
|
|
|
|
|
make quick
|
|
|
|
|
|
|
|
|
|
You will get errors from the api index and won't be able to view the api-docs, but it's
|
|
|
|
|
a lot faster to run! This will not clean out the `build/` dir between runs. If you
|
|
|
|
|
find you get any old stuff hanging around in the
|
|
|
|
|
`build/` dir you can use
|
|
|
|
|
|
|
|
|
|
make clear
|
|
|
|
|
|
|
|
|
|
to remove any old build cruft before next quick-build.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Building for release
|
|
|
|
|
|
|
|
|
|
The release-build will build all documentation branches. Only official Evennia
|
|
|
|
|
branches will be built so you can't use this to build your own testing branch.
|
|
|
|
|
|
|
|
|
|
- All local changes must have been committed to git first, since the docs build
|
|
|
|
|
by looking at the git tree.
|
|
|
|
|
- To build for local checking, run
|
|
|
|
|
|
|
|
|
|
make mv-local
|
|
|
|
|
|
|
|
|
|
- Once all is built and it looks ok, run
|
|
|
|
|
|
|
|
|
|
make deploy
|
|
|
|
|
|
|
|
|
|
Note that this step requires git-push access to the Evennia `gh-pages` branch on `github`.
|
|
|
|
|
|
|
|
|
|
If you know what you are doing you can also do
|
|
|
|
|
|
|
|
|
|
make release
|
|
|
|
|
|
|
|
|
|
This does the build + deploy steps automatically.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Contributing and editing documentation
|
|
|
|
|
|
|
|
|
|
Check out the branch of Evennia you want to edit the documentation for. Then make your own
|
|
|
|
|
branch off this, make your changes and make a PR for it!
|
|
|
|
|
|
|
|
|
|
The documentation sources are in `evennia/docs/source/`. These are mainly
|
|
|
|
|
[Markdown][commonmark] (`.md`) files that you can edit like normal text files.
|
|
|
|
|
The ReST files in `source/api/` are auto-generated from the Evennia sources and
|
|
|
|
|
should _not_ be manually edited.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Help with editing syntax
|
|
|
|
|
|
|
|
|
|
## Referring to titles in another file
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If file1 looks like this:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# Header title
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
You can refer to it from another file as
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Read more about it [here](path.to.file1.md:Header title)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
To refer to code in the Evennia repository, you can use a relative reference from the docs/ folder:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
You can find this code [here](../evennia/objects/objects.py).
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
This will be automatically translated to the matching github link so the reader can click and jump to that code directly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Making indices
|
|
|
|
|
|
|
|
|
|
To make a document tree (what Sphinx refers to as a "Toc Tree"), make a list of document urls like this:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
* [Title1](doc1.md)
|
|
|
|
|
* [Title2](doc2.md)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
This will create a toc-tree structure behind the scenes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We may expand on this later. For now, check out existing docs and refer to the
|
|
|
|
|
[Markdown][commonmark] (CommonMark) specification.
|
|
|
|
|
|
|
|
|
|
# Technical
|
|
|
|
|
|
|
|
|
|
Evennia leverages [Sphinx][sphinx] with the [recommonmark][recommonmark] extension, which allows us to write our
|
|
|
|
|
docs in light-weight Markdown (more specifically [CommonMark][commonmark], like on github) rather than ReST.
|
|
|
|
|
The recommonmark extension however also allows us to use ReST selectively in the places were it is more
|
|
|
|
|
expressive than the simpler (but much easier) Markdown.
|
|
|
|
|
|
|
|
|
|
For [autodoc-generation][sphinx-autodoc] generation, we use the sphinx-[napoleon][sphinx-napoleon] extension
|
|
|
|
|
to understand our friendly Google-style docstrings used in classes and functions etc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[sphinx]: https://www.sphinx-doc.org/en/master/
|
|
|
|
|
[recommonmark]: https://recommonmark.readthedocs.io/en/latest/index.html
|
|
|
|
|
[commonmark]: https://spec.commonmark.org/current/
|
|
|
|
|
[sphinx-autodoc]: http://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#module-sphinx.ext.autodoc
|
|
|
|
|
[sphinx-napoleon]: http://www.sphinx-doc.org/en/master/usage/extensions/napoleon.html
|
2020-04-10 10:36:56 +02:00
|
|
|
[getting-started]: https://github.com/evennia/evennia/wiki/Getting-Started
|
|
|
|
|
|