Add doc-contribution page, toctree-creation mechanism
This commit is contained in:
parent
c380782d61
commit
31306f5b22
6 changed files with 833 additions and 225 deletions
|
|
@ -15,7 +15,7 @@ We also need to build the toc-tree and should do so automatically for now.
|
||||||
|
|
||||||
import glob
|
import glob
|
||||||
import re
|
import re
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
_RE_MD_LINK = re.compile(r"\[(?P<txt>[\w -\[\]]+?)\]\((?P<url>.+?)\)", re.I + re.S + re.U)
|
_RE_MD_LINK = re.compile(r"\[(?P<txt>[\w -\[\]]+?)\]\((?P<url>.+?)\)", re.I + re.S + re.U)
|
||||||
_RE_REF_LINK = re.compile(r"\[[\w -\[\]]*?\]\(.+?\)", re.I + re.S + re.U)
|
_RE_REF_LINK = re.compile(r"\[[\w -\[\]]*?\]\(.+?\)", re.I + re.S + re.U)
|
||||||
|
|
@ -32,13 +32,13 @@ _INDEX_PREFIX = f"""
|
||||||
|
|
||||||
# VERSION WARNING
|
# VERSION WARNING
|
||||||
|
|
||||||
> This is the experimental static v0.9 documentation of Evennia, _automatically_ generated from the
|
> This is the experimental static v0.9 documentation of Evennia, _automatically_ generated from the
|
||||||
> [evennia wiki](https://github.com/evennia/evennia/wiki/) at {datetime.datetime.now()}.
|
> [evennia wiki](https://github.com/evennia/evennia/wiki/) at {datetime.datetime.now()}.
|
||||||
> There are known conversion issues which will _not_ be addressed in this version - refer to
|
> There are known conversion issues which will _not_ be addressed in this version - refer to
|
||||||
> the original wiki if you have trouble.
|
> the original wiki if you have trouble.
|
||||||
>
|
>
|
||||||
> Manual conversion and cleanup will instead happen during development of the upcoming v1.0
|
> Manual conversion and cleanup will instead happen during development of the upcoming v1.0
|
||||||
> version of this static documentation.
|
> version of this static documentation.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -202,7 +202,6 @@ def _sub_link(match):
|
||||||
return f"[{txt}]({url})"
|
return f"[{txt}]({url})"
|
||||||
|
|
||||||
def create_toctree(files):
|
def create_toctree(files):
|
||||||
|
|
||||||
with open("../source/toc.md", "w") as fil:
|
with open("../source/toc.md", "w") as fil:
|
||||||
fil.write("# Toc\n")
|
fil.write("# Toc\n")
|
||||||
|
|
||||||
|
|
@ -221,7 +220,7 @@ def convert_links(files, outdir):
|
||||||
|
|
||||||
for inpath in files:
|
for inpath in files:
|
||||||
|
|
||||||
is_index = False
|
is_index = False
|
||||||
outfile = inpath.rsplit('/', 1)[-1]
|
outfile = inpath.rsplit('/', 1)[-1]
|
||||||
if outfile == "Home.md":
|
if outfile == "Home.md":
|
||||||
outfile = "index.md"
|
outfile = "index.md"
|
||||||
|
|
@ -235,7 +234,7 @@ def convert_links(files, outdir):
|
||||||
text = fil.read()
|
text = fil.read()
|
||||||
|
|
||||||
if is_index:
|
if is_index:
|
||||||
text = _INDEX_PREFIX + text
|
text = _INDEX_PREFIX + text
|
||||||
lines = text.split("\n")
|
lines = text.split("\n")
|
||||||
lines = (lines[:-11]
|
lines = (lines[:-11]
|
||||||
+ [" - The [TOC](toc) lists all regular documentation pages.\n\n"]
|
+ [" - The [TOC](toc) lists all regular documentation pages.\n\n"]
|
||||||
|
|
@ -256,6 +255,6 @@ def convert_links(files, outdir):
|
||||||
fil.write(text)
|
fil.write(text)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
print("This should not be run on develop files, it would overwrite changes.")
|
||||||
create_toctree(_INFILES)
|
# create_toctree(_INFILES)
|
||||||
convert_links(_INFILES, _OUTDIR)
|
# convert_links(_INFILES, _OUTDIR)
|
||||||
|
|
|
||||||
40
docs/pylib/create_toctree.py
Normal file
40
docs/pylib/create_toctree.py
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
"""
|
||||||
|
Build a TOC-tree; Sphinx requires it and this makes it easy to just
|
||||||
|
add/build/link new files without needing to explicitly add it to a toctree
|
||||||
|
directive somewhere.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
import glob
|
||||||
|
from os.path import abspath, dirname, join as pathjoin, sep
|
||||||
|
|
||||||
|
_SOURCEDIR = "../source/"
|
||||||
|
_IGNORE_FILES = []
|
||||||
|
_SOURCE_DIR = pathjoin(dirname(dirname(abspath(__file__))), "source")
|
||||||
|
_TOC_FILE = pathjoin(_SOURCE_DIR, "toc.md")
|
||||||
|
|
||||||
|
|
||||||
|
def create_toctree():
|
||||||
|
"""
|
||||||
|
Create source/toc.md file
|
||||||
|
"""
|
||||||
|
_INFILES = [path for path in glob.glob(_SOURCE_DIR + sep + "*.md")
|
||||||
|
if path.rsplit('/', 1)[-1] not in _IGNORE_FILES]
|
||||||
|
# split out the name and remove the .md extension
|
||||||
|
_FILENAMES = [path.rsplit("/", 1)[-1] for path in sorted(_INFILES)]
|
||||||
|
_FILENAMES = [path.split(".", 1)[0] for path in _FILENAMES]
|
||||||
|
|
||||||
|
with open(_TOC_FILE, "w") as fil:
|
||||||
|
fil.write("# Toc\n")
|
||||||
|
|
||||||
|
for ref in _FILENAMES:
|
||||||
|
|
||||||
|
if ref == "toc":
|
||||||
|
continue
|
||||||
|
|
||||||
|
linkname = ref.replace("-", " ")
|
||||||
|
fil.write(f"\n- [{linkname}]({ref}.md)")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
create_toctree()
|
||||||
632
docs/source/Contributing-Docs.md
Normal file
632
docs/source/Contributing-Docs.md
Normal file
|
|
@ -0,0 +1,632 @@
|
||||||
|
# Evennia docs
|
||||||
|
|
||||||
|
Documentation for the Evennia MUD creation system.
|
||||||
|
|
||||||
|
```warning::
|
||||||
|
WARNING: This system is still WIP and many things are bound to change!
|
||||||
|
```
|
||||||
|
|
||||||
|
The live documentation is (or will in the future be) available at
|
||||||
|
[https://evennia.github.io/evennia/latest](https://evennia.github.io/evennia/latest).
|
||||||
|
|
||||||
|
# Editing the docs
|
||||||
|
|
||||||
|
The documentation source files are `*.md` (Markdown) files found in `evennia/docs/source/`.
|
||||||
|
Markdown files are simple text files that can be edited with a normal text editor. They can also
|
||||||
|
contain raw HTML directives (but that is very rarely needed). They primarly use
|
||||||
|
the [Markdown][commonmark] syntax. See [the syntax section below](#Editing-syntax) for more help.
|
||||||
|
|
||||||
|
> Note: Don't edit the files in `source/api/`. These are auto-generated and your changes
|
||||||
|
> will be lost.
|
||||||
|
|
||||||
|
## Contributing to docs
|
||||||
|
|
||||||
|
Contributing to the docs is is like [contributing to the rest of Evennia][contributing]:
|
||||||
|
Check out the branch of Evennia you want to edit the documentation for. Create your
|
||||||
|
own work-branch, make your changes to files in `evennia/docs/source/` and make a PR for it!
|
||||||
|
|
||||||
|
# Building the docs locally
|
||||||
|
|
||||||
|
The sources in `evennia/docs/source/` are built into a pretty documentation using
|
||||||
|
the [Sphinx][sphinx] static generator system. To do so locally you need to either
|
||||||
|
use a system with `make` (Linux/Unix/Mac or [Windows-WSL][Windows-WSL]). Lacking that, you could
|
||||||
|
in principle also run the sphinx build-commands manually - read the `evennia/docs/Makefile` to see
|
||||||
|
which commands are run by `make`.
|
||||||
|
|
||||||
|
You don't necessarily _have_ to build the docs locally to contribute. But
|
||||||
|
building them allows you to check for yourself that syntax is correct and that
|
||||||
|
your change comes out looking as you expected.
|
||||||
|
|
||||||
|
## Building only the main documentation
|
||||||
|
|
||||||
|
If you only want to build the main documentation pages (not the API auto-docs),
|
||||||
|
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 Python 3.7.
|
||||||
|
- `cd` to into the `evennia/docs` folder.
|
||||||
|
- Install the documentation-build requirements:
|
||||||
|
|
||||||
|
```
|
||||||
|
make install
|
||||||
|
or
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
- Next, build the html-based documentation:
|
||||||
|
|
||||||
|
```
|
||||||
|
make quick
|
||||||
|
```
|
||||||
|
|
||||||
|
- The html-based documentation will appear in the new
|
||||||
|
folder `evennia/docs/build/html/`. Note any errors from files you have edited.
|
||||||
|
- Use a web browser to open `file://<path-to-folder>/evennia/docs/build/html/index.html` and view
|
||||||
|
the docs. Note that you will get errors if clicking a link to the auto-docs, because you didn't
|
||||||
|
build them!
|
||||||
|
|
||||||
|
## Building the 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 into a virtualenv. Get back here once everything is installed but
|
||||||
|
before creating a new game.
|
||||||
|
- Make sure you `cd` to the folder _containing_ your `evennia/` repo (so two levels
|
||||||
|
up from `evennia/docs/`).
|
||||||
|
- Create a new game folder called exactly `gamedir` at the same level as your `evennia`
|
||||||
|
repo with
|
||||||
|
|
||||||
|
```
|
||||||
|
evennia --init gamedir
|
||||||
|
```
|
||||||
|
|
||||||
|
- Then `cd` into it and create a new, empty database. You don't need to start the game
|
||||||
|
or do any further changes.
|
||||||
|
|
||||||
|
```
|
||||||
|
evennia migrate
|
||||||
|
```
|
||||||
|
|
||||||
|
- This is how the structure should look at this point:
|
||||||
|
|
||||||
|
```
|
||||||
|
(top)
|
||||||
|
|
|
||||||
|
----- evennia/ (the top-level folder, containing docs/)
|
||||||
|
|
|
||||||
|
----- gamedir/
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are already working on a game, you may of course have your 'real' game folder there as
|
||||||
|
well. We won't touch that.
|
||||||
|
|
||||||
|
- Make sure you are still in your virtualenv, then go to `evennia/docs/` and
|
||||||
|
install the doc-building requirements:
|
||||||
|
|
||||||
|
```
|
||||||
|
make install
|
||||||
|
or
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
- Finally, build the full documentation, including the auto-docs:
|
||||||
|
|
||||||
|
```
|
||||||
|
make local
|
||||||
|
```
|
||||||
|
|
||||||
|
- The rendered files will appear in a new folder `evennia/docs/build/html/`.
|
||||||
|
Note any errors from files you have edited.
|
||||||
|
- Point your web browser to `file://<path-to-folder>/evennia/docs/build/html/index.html` to
|
||||||
|
view the full docs.
|
||||||
|
|
||||||
|
### Building with another gamedir
|
||||||
|
|
||||||
|
If you for some reason want to use another location of your `gamedir/`, or want it
|
||||||
|
named something else (maybe you already use the name 'gamedir' for your development ...),
|
||||||
|
you can do so by setting the `EVGAMEDIR` environment variable to the absolute path
|
||||||
|
of your alternative game dir. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
EVGAMEDIR=/my/path/to/mygamedir make local
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building for release
|
||||||
|
|
||||||
|
The full Evennia documentation contains docs from many Evennia
|
||||||
|
versions, old and new. This is done by pulling documentation from Evennia's old release
|
||||||
|
branches and building them all so readers can choose which one to view. Only
|
||||||
|
specific 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 versioned
|
||||||
|
docs are built by looking at the git tree.
|
||||||
|
- To build for local checking, run (`mv` stands for "multi-version"):
|
||||||
|
|
||||||
|
```
|
||||||
|
make mv-local
|
||||||
|
```
|
||||||
|
|
||||||
|
This is as close to the 'real' version as you can get locally. The different versions
|
||||||
|
will be found under `evennia/docs/build`. During deploy a symlink `latest` will point
|
||||||
|
to the latest version of the docs.
|
||||||
|
|
||||||
|
### Release
|
||||||
|
|
||||||
|
Releasing the official docs requires git-push access the the Evennia `gh-pages` branch
|
||||||
|
on `github`. So there is no risk of you releasing your local changes accidentally.
|
||||||
|
|
||||||
|
- To deploy docs in two steps
|
||||||
|
|
||||||
|
```
|
||||||
|
make mv-local
|
||||||
|
make deploy
|
||||||
|
```
|
||||||
|
|
||||||
|
- If you know what you are doing you can also do build + deploy in one step:
|
||||||
|
|
||||||
|
```
|
||||||
|
make release
|
||||||
|
```
|
||||||
|
|
||||||
|
After deployment finishes, the updated live documentation will be
|
||||||
|
available at https://evennia.github.io/evennia/latest/.
|
||||||
|
|
||||||
|
# Editing syntax
|
||||||
|
|
||||||
|
The format used for Evennia's docs is [Markdown][commonmark-help] (Commonmark). While markdown supports a
|
||||||
|
few alternative forms for some of these, we try to stick to the below forms for consistency.
|
||||||
|
|
||||||
|
## Italic/Bold
|
||||||
|
|
||||||
|
We generally use underscores for italics and double-asterisks for bold:
|
||||||
|
|
||||||
|
- `_Italic text_` - _Italic text_
|
||||||
|
- `**Bold Text**` - **Bold text**
|
||||||
|
|
||||||
|
## Headings
|
||||||
|
|
||||||
|
We use `#` to indicate sections/headings. The more `#` the more of a sub-heading it is (will get smaller
|
||||||
|
and smaller font).
|
||||||
|
|
||||||
|
- `# Heading`
|
||||||
|
- `## SubHeading`
|
||||||
|
- `## SubSubHeading`
|
||||||
|
|
||||||
|
# Heading
|
||||||
|
## SubHeading
|
||||||
|
### SubSubHeading
|
||||||
|
|
||||||
|
> Don't reuse the same heading/subheading name over and over in the same document. While Markdown does not prevent
|
||||||
|
it, it makes it impossible to link to those duplicates properly (see next section).
|
||||||
|
|
||||||
|
## Lists
|
||||||
|
|
||||||
|
One can create both bullet-point lists and numbered lists:
|
||||||
|
|
||||||
|
```
|
||||||
|
- first bulletpoint
|
||||||
|
- second bulletpoint
|
||||||
|
- third bulletpoint
|
||||||
|
```
|
||||||
|
|
||||||
|
- first bulletpoint
|
||||||
|
- second bulletpoint
|
||||||
|
- third bulletpoint
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Numbered point one
|
||||||
|
2. Numbered point two
|
||||||
|
3. Numbered point three
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Numbered point one
|
||||||
|
2. Numbered point two
|
||||||
|
3. Numbered point three
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
A note can be used to enphasise important things. It's added by starting one or more lines with `>`.
|
||||||
|
|
||||||
|
```
|
||||||
|
> Note: This is an important
|
||||||
|
> thing to remember.
|
||||||
|
```
|
||||||
|
|
||||||
|
> Note: This is an important
|
||||||
|
> thing to remember.
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- `[linktext](url_or_ref)` - gives a clickable link [linktext][linkdemo].
|
||||||
|
|
||||||
|
The `url_or_ref` can either be a full `http://...` url or an internal _reference_. For example, use
|
||||||
|
`[my document](My-Document)` to link to the document `evennia/docs/source/My-Document.md`. Avoid using
|
||||||
|
full `http://` linking unless really referring to an external resource.
|
||||||
|
|
||||||
|
- `[linktext](ref#heading-name)`
|
||||||
|
|
||||||
|
You can point to sub-sections (headings) in a document by using a single `#` and the name of the
|
||||||
|
heading, replacing spaces with dashes. So to refer to a heading `## Cool Stuff` inside `My-Document`
|
||||||
|
would be a link `[cool stuff](My-Document#Cool-Stuff)`.
|
||||||
|
|
||||||
|
- `[linktext][linkref]` - refer to a reference defined later in the document.
|
||||||
|
|
||||||
|
Urls can get long and if you are using the same url in many places it can get a little cluttered. So you can also put
|
||||||
|
the url as a 'footnote' at the end of your document
|
||||||
|
and refer to it by putting your reference within square brackets `[ ]`. Here's an example:
|
||||||
|
|
||||||
|
```
|
||||||
|
This is a [clickable link][mylink]. This is [another link][1].
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
[mylink]: http://...
|
||||||
|
[1]: My-Document
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Special references
|
||||||
|
|
||||||
|
The Evennia documentation supports some special reference shortcuts in links:
|
||||||
|
|
||||||
|
#### Github online repository
|
||||||
|
|
||||||
|
- `github:` - a shortcut for the full path to the Evennia repository on github. This will refer to
|
||||||
|
the `master` branch by default:
|
||||||
|
|
||||||
|
[link to objects.py](github:evennia/objects/objects.py)
|
||||||
|
|
||||||
|
This will remap to https://github.com/evennia/evennia/blob/master/evennia/objects/objects.py.
|
||||||
|
- To refer to the `develop` branch, start the url with `develop/`:
|
||||||
|
|
||||||
|
[link to objects.py](github:develop/evennia/objects/objects.py)
|
||||||
|
|
||||||
|
#### API
|
||||||
|
|
||||||
|
- `api:` - references a path in the api documentation. This is specified as a Python-path:
|
||||||
|
|
||||||
|
[link to api for objects.py](api:evennia.objects)
|
||||||
|
|
||||||
|
This will create a link to the auto-generated `evennia/source/api/evennia.objects.rst` document.
|
||||||
|
|
||||||
|
Since api-docs are generated alongside the documentation, this will always be the api docs for the
|
||||||
|
current version/branch of the docs.
|
||||||
|
|
||||||
|
#### Bug reports/feature request
|
||||||
|
|
||||||
|
|
||||||
|
- `issue`, `bug-report`, `feature-request` - links to the same github issue select page.
|
||||||
|
|
||||||
|
If you find a problem, make a [bug report](issue)!
|
||||||
|
|
||||||
|
This will generate a link to https://github.com/evennia/evennia/issues/new/choose.
|
||||||
|
|
||||||
|
> For some reason these particular shortcuts gives a warning during documentation compilation. This
|
||||||
|
> can be ignored.
|
||||||
|
|
||||||
|
## Verbatim text
|
||||||
|
|
||||||
|
It's common to want to mark something to be displayed verbatim - just as written - without any
|
||||||
|
Markdown parsing. In running text, this is done using backticks (\`), like \`verbatim text\` becomes `verbatim text`.
|
||||||
|
|
||||||
|
If you want to put the verbatim text on its own line, you can do so easily by simply indenting
|
||||||
|
it 4 spaces (add empty lines on each side for readability too):
|
||||||
|
|
||||||
|
```
|
||||||
|
This is normal text
|
||||||
|
|
||||||
|
This is verbatim text
|
||||||
|
|
||||||
|
This is normal text
|
||||||
|
```
|
||||||
|
|
||||||
|
Another way is to use triple-backticks:
|
||||||
|
|
||||||
|
````
|
||||||
|
```
|
||||||
|
Everything within these backticks will be verbatim.
|
||||||
|
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
## Code blocks
|
||||||
|
|
||||||
|
A special case is code examples - we want them to get code-highlighting for readability. This is done by using
|
||||||
|
the triple-backticks and specify which language we use:
|
||||||
|
|
||||||
|
````
|
||||||
|
```python
|
||||||
|
|
||||||
|
def a_python_func(x):
|
||||||
|
return x * x
|
||||||
|
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
def a_python_func(x):
|
||||||
|
return x * x
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## ReST blocks
|
||||||
|
|
||||||
|
Markdown is easy to read and use. But while it does most of what we need, there are some things it's
|
||||||
|
not quite as expressive as it needs to be. For this we need to fall back to the [ReST][ReST] markup
|
||||||
|
language which the documentation system uses under the hood. This is done by specifying `eval_rst` as
|
||||||
|
the name of the `language` of a literal block:
|
||||||
|
|
||||||
|
````
|
||||||
|
```eval_rst
|
||||||
|
|
||||||
|
This will be evaluated as ReST.
|
||||||
|
|
||||||
|
```
|
||||||
|
````
|
||||||
|
There is also a short-hand form for starting a [ReST directive][ReST-directives] without need for `eval_rst`:
|
||||||
|
|
||||||
|
````
|
||||||
|
```directive:: possible-option
|
||||||
|
|
||||||
|
Content that *must* be indented for it to be included in the directive.
|
||||||
|
|
||||||
|
New lines are ignored except if separated by an empty line.
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
See below for examples of this.
|
||||||
|
|
||||||
|
#### Note
|
||||||
|
|
||||||
|
This kind of note may pop even more than a normal `> note`. It may however also make the test
|
||||||
|
feel more 'busy', so use with care.
|
||||||
|
|
||||||
|
````
|
||||||
|
```note::
|
||||||
|
|
||||||
|
Remember that ...
|
||||||
|
|
||||||
|
```
|
||||||
|
````
|
||||||
|
```note::
|
||||||
|
|
||||||
|
Remember that ...
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Important
|
||||||
|
|
||||||
|
This is for particularly important and visible notes.
|
||||||
|
|
||||||
|
````
|
||||||
|
```important::
|
||||||
|
This is important because it is!
|
||||||
|
```
|
||||||
|
|
||||||
|
````
|
||||||
|
```important::
|
||||||
|
This is important because it is!
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Warning
|
||||||
|
|
||||||
|
A warning block is used to draw attention to particularly dangerous things, or features easy to
|
||||||
|
mess up.
|
||||||
|
|
||||||
|
````
|
||||||
|
```warning::
|
||||||
|
Be careful about this ...
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```warning::
|
||||||
|
Be careful about this ...
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Version changes and deprecations
|
||||||
|
|
||||||
|
These will show up as one-line warnings that suggest an added, changed or deprecated
|
||||||
|
feature beginning with particular version.
|
||||||
|
|
||||||
|
````
|
||||||
|
```versionadded:: 1.0
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```versionadded:: 1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
````
|
||||||
|
```versionchanged:: 1.0
|
||||||
|
How the feature changed with this version.
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```versionchanged:: 1.0
|
||||||
|
How the feature changed with this version.
|
||||||
|
```
|
||||||
|
|
||||||
|
````
|
||||||
|
```deprecated:: 1.0
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```deprecated:: 1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Sidebar
|
||||||
|
|
||||||
|
This will display an informative sidebar that floats to the side of regular content. This is useful
|
||||||
|
for example to remind the reader of some concept relevant to the text.
|
||||||
|
|
||||||
|
````
|
||||||
|
```sidebar:: Things to remember
|
||||||
|
|
||||||
|
- There can be bullet lists
|
||||||
|
- in here.
|
||||||
|
|
||||||
|
Headers:
|
||||||
|
with indented blocks like this
|
||||||
|
Will end up:
|
||||||
|
as full sub-headings in the sidebar.
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```sidebar:: Things to remember
|
||||||
|
|
||||||
|
- There can be bullet lists
|
||||||
|
- in here.
|
||||||
|
|
||||||
|
Headers:
|
||||||
|
with indented blocks like this
|
||||||
|
Will end up:
|
||||||
|
as full sub-headings in the sidebar.
|
||||||
|
```
|
||||||
|
Remember that for ReST-directives, the content within the triple-backticks _must_ be indented to
|
||||||
|
some degree or the content will just appear outside of the directive as regular text.
|
||||||
|
|
||||||
|
If wanting to make sure to have the next header appear on a row of its own, one can embed
|
||||||
|
a plain HTML string in the markdown like so:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<div style="clear: right;"></div>
|
||||||
|
```
|
||||||
|
|
||||||
|
<div style="clear: right;"></div>
|
||||||
|
|
||||||
|
#### Tables
|
||||||
|
|
||||||
|
A table is specified using [ReST table syntax][ReST-tables]:
|
||||||
|
|
||||||
|
````
|
||||||
|
```eval_rst
|
||||||
|
|
||||||
|
===== ===== =======
|
||||||
|
A B A and B
|
||||||
|
===== ===== =======
|
||||||
|
False False False
|
||||||
|
True False False
|
||||||
|
False True False
|
||||||
|
True True True
|
||||||
|
===== ===== =======
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
|
||||||
|
===== ===== =======
|
||||||
|
A B A and B
|
||||||
|
===== ===== =======
|
||||||
|
False False False
|
||||||
|
True False False
|
||||||
|
False True False
|
||||||
|
True True True
|
||||||
|
===== ===== =======
|
||||||
|
```
|
||||||
|
|
||||||
|
or the more flexible but verbose
|
||||||
|
|
||||||
|
````
|
||||||
|
```eval_rst
|
||||||
|
+------------------------+------------+----------+----------+
|
||||||
|
| Header row, column 3 | Header 2 | Header 3 | Header 4 |
|
||||||
|
| (header rows optional) | | | |
|
||||||
|
+========================+============+==========+==========+
|
||||||
|
| body row 1, column 1 | column 2 | column 3 | column 4 |
|
||||||
|
+------------------------+------------+----------+----------+
|
||||||
|
| body row 2 | ... | ... | |
|
||||||
|
+------------------------+------------+----------+----------+
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------------+------------+----------+----------+
|
||||||
|
| Header row, column 3 | Header 2 | Header 3 | Header 4 |
|
||||||
|
| (header rows optional) | | | |
|
||||||
|
+========================+============+==========+==========+
|
||||||
|
| body row 1, column 1 | column 2 | column 3 | column 4 |
|
||||||
|
+------------------------+------------+----------+----------+
|
||||||
|
| body row 2 | ... | ... | |
|
||||||
|
+------------------------+------------+----------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
#### A more flexible code block
|
||||||
|
|
||||||
|
The regular Markdown codeblock is usually enough but for more direct control over the style, one
|
||||||
|
can also specify the code block explicitly in `ReST`.
|
||||||
|
for more flexibility. It also provides a link to the code block, identified by its name.
|
||||||
|
|
||||||
|
|
||||||
|
````
|
||||||
|
```code-block:: python
|
||||||
|
:linenos:
|
||||||
|
:emphasize-lines: 6-7,12
|
||||||
|
:caption: An example code block
|
||||||
|
:name: A full code block example
|
||||||
|
|
||||||
|
from evennia import Command
|
||||||
|
class CmdEcho(Command):
|
||||||
|
"""
|
||||||
|
Usage: echo <arg>
|
||||||
|
"""
|
||||||
|
key = "echo"
|
||||||
|
def func(self):
|
||||||
|
self.caller.msg(self.args.strip())
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
```code-block:: python
|
||||||
|
:linenos:
|
||||||
|
:emphasize-lines: 6-7,12
|
||||||
|
:caption: An example code block
|
||||||
|
:name: A full code block example
|
||||||
|
|
||||||
|
from evennia import Command
|
||||||
|
class CmdEcho(Command):
|
||||||
|
"""
|
||||||
|
Usage: echo <arg>
|
||||||
|
"""
|
||||||
|
key = "echo"
|
||||||
|
def func(self):
|
||||||
|
self.caller.msg(self.args.strip())
|
||||||
|
```
|
||||||
|
Here, `:linenos:` turns on line-numbers and `:emphasize-lines:` allows for emphasizing certain lines
|
||||||
|
in a different color. The `:caption:` shows an instructive text and `:name:` is used to reference this
|
||||||
|
block through the link that will appear (so it should be unique for a give document).
|
||||||
|
|
||||||
|
> The default markdown syntax will actually generate a code-block ReST instruction like this
|
||||||
|
> automatically for us behind the scenes. The automatic generation can't know things like emphasize-lines
|
||||||
|
> or caption since that's not a part of the Markdown 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/
|
||||||
|
[commonmark-help]: https://commonmark.org/help/
|
||||||
|
[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
|
||||||
|
[getting-started]: Getting-Started
|
||||||
|
[contributing]: Contributing
|
||||||
|
[ReST]: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html
|
||||||
|
[ReST-tables]: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#tables
|
||||||
|
[ReST-directives]: https://www.sphinx-doc.org/en/master/usage/restruturedtext/directives.html
|
||||||
|
[Windows-WSL]: https://docs.microsoft.com/en-us/windows/wsl/install-win10
|
||||||
|
[linkdemo]: #Links
|
||||||
|
|
@ -126,7 +126,7 @@ def url_resolver(url):
|
||||||
elif url.startswith(githubstart):
|
elif url.startswith(githubstart):
|
||||||
urlpath = url[len(githubstart):]
|
urlpath = url[len(githubstart):]
|
||||||
if not (urlpath.startswith("develop/") or urlpath.startswith("master")):
|
if not (urlpath.startswith("develop/") or urlpath.startswith("master")):
|
||||||
urlpath = "master/" + urlpath
|
urlpath = "master/" + urlpath
|
||||||
return _github_code_root + urlpath
|
return _github_code_root + urlpath
|
||||||
elif url.startswith(apistart):
|
elif url.startswith(apistart):
|
||||||
return "api/" + url[len(apistart) :] + ".html"
|
return "api/" + url[len(apistart) :] + ".html"
|
||||||
|
|
@ -182,6 +182,7 @@ if not _no_autodoc:
|
||||||
|
|
||||||
evennia._init()
|
evennia._init()
|
||||||
|
|
||||||
|
|
||||||
if _no_autodoc:
|
if _no_autodoc:
|
||||||
exclude_patterns = ["api/*"]
|
exclude_patterns = ["api/*"]
|
||||||
else:
|
else:
|
||||||
|
|
@ -223,11 +224,16 @@ napoleon_use_rtype = True
|
||||||
# -- Main config setup ------------------------------------------
|
# -- Main config setup ------------------------------------------
|
||||||
# last setup steps for some plugins
|
# last setup steps for some plugins
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
app.connect("autodoc-skip-member", autodoc_skip_member)
|
app.connect("autodoc-skip-member", autodoc_skip_member)
|
||||||
app.add_transform(AutoStructify)
|
app.add_transform(AutoStructify)
|
||||||
|
|
||||||
|
# build toctree file
|
||||||
|
sys.path.insert(1, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'docs'))
|
||||||
|
from docs.pylib import create_toctree
|
||||||
|
create_toctree.create_toctree()
|
||||||
|
print("Updated source/toc.md file")
|
||||||
|
|
||||||
# custom lunr-based search
|
# custom lunr-based search
|
||||||
# from docs import search
|
# from docs import search
|
||||||
# custom search
|
# custom search
|
||||||
|
|
|
||||||
|
|
@ -9,81 +9,11 @@
|
||||||
> For now you are best off using the original wiki, or the less changing v0.9.1
|
> For now you are best off using the original wiki, or the less changing v0.9.1
|
||||||
> of these docs. You have been warned.
|
> of these docs. You have been warned.
|
||||||
|
|
||||||
```sidebar:: An important sidebar
|
|
||||||
|
|
||||||
- Extra features
|
|
||||||
- Another feature
|
|
||||||
|
|
||||||
Third feature:
|
|
||||||
Stuff to do
|
|
||||||
|
|
||||||
Fourth feature:
|
|
||||||
Even more.
|
|
||||||
```
|
|
||||||
|
|
||||||
# Evennia Documentation
|
# Evennia Documentation
|
||||||
|
|
||||||
This is the manual of [Evennia](http://www.evennia.com), the open source Python
|
This is the manual of [Evennia](http://www.evennia.com), the open source Python
|
||||||
`MU*` creation system. A link to the [feature-request](issue)
|
`MU*` creation system. Want to help improve the docs? See the page on
|
||||||
|
[Contributing to docs](Contributing-Docs)!
|
||||||
```note::
|
|
||||||
|
|
||||||
This is a particular note.
|
|
||||||
|
|
||||||
```warning:: This is an important thing!
|
|
||||||
Especially this.
|
|
||||||
```
|
|
||||||
|
|
||||||
```important:: This is an interesting thing!
|
|
||||||
|
|
||||||
More text here!
|
|
||||||
|
|
||||||
And here.
|
|
||||||
```
|
|
||||||
|
|
||||||
```seealso:: This is good to look at too.
|
|
||||||
This in particular
|
|
||||||
```
|
|
||||||
|
|
||||||
```versionadded:: 1.0
|
|
||||||
|
|
||||||
This feature was added here
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
```deprecated:: 1.0
|
|
||||||
Use this thing instead.
|
|
||||||
```
|
|
||||||
|
|
||||||
```code-block:: python
|
|
||||||
:emphasize-lines: 6-7,12
|
|
||||||
:caption: An example code-block with everything turned on.
|
|
||||||
:name: Full code-block example
|
|
||||||
|
|
||||||
# Comment line
|
|
||||||
from evennia import Command
|
|
||||||
|
|
||||||
class MyCommand(Command):
|
|
||||||
"""
|
|
||||||
Usage:
|
|
||||||
cmd x
|
|
||||||
"""
|
|
||||||
key = "cmd"
|
|
||||||
|
|
||||||
def func(self):
|
|
||||||
self.caller.msg(self.args)
|
|
||||||
```
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
# Comment line
|
|
||||||
import System
|
|
||||||
System.run_emphasis_line
|
|
||||||
# Long lines in code blocks create a auto horizontal scrollbar
|
|
||||||
System.exit!
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<div style="clear: right;"></div>
|
|
||||||
|
|
||||||
There is [a lengthier introduction](Evennia-Introduction) to read. You might also want to read about
|
There is [a lengthier introduction](Evennia-Introduction) to read. You might also want to read about
|
||||||
[how to get and give help](How-To-Get-And-Give-Help).
|
[how to get and give help](How-To-Get-And-Give-Help).
|
||||||
|
|
|
||||||
|
|
@ -1,143 +1,144 @@
|
||||||
# Toc
|
# Toc
|
||||||
|
|
||||||
* [A voice operated elevator using events](A-voice-operated-elevator-using-events.md)
|
- [A voice operated elevator using events](A-voice-operated-elevator-using-events.md)
|
||||||
* [API refactoring](API-refactoring.md)
|
- [API refactoring](API-refactoring.md)
|
||||||
* [Accounts](Accounts.md)
|
- [Accounts](Accounts.md)
|
||||||
* [Add a simple new web page](Add-a-simple-new-web-page.md)
|
- [Add a simple new web page](Add-a-simple-new-web-page.md)
|
||||||
* [Add a wiki on your website](Add-a-wiki-on-your-website.md)
|
- [Add a wiki on your website](Add-a-wiki-on-your-website.md)
|
||||||
* [Adding Command Tutorial](Adding-Command-Tutorial.md)
|
- [Adding Command Tutorial](Adding-Command-Tutorial.md)
|
||||||
* [Adding Object Typeclass Tutorial](Adding-Object-Typeclass-Tutorial.md)
|
- [Adding Object Typeclass Tutorial](Adding-Object-Typeclass-Tutorial.md)
|
||||||
* [Administrative Docs](Administrative-Docs.md)
|
- [Administrative Docs](Administrative-Docs.md)
|
||||||
* [Apache Config](Apache-Config.md)
|
- [Apache Config](Apache-Config.md)
|
||||||
* [Arxcode installing help](Arxcode-installing-help.md)
|
- [Arxcode installing help](Arxcode-installing-help.md)
|
||||||
* [Async Process](Async-Process.md)
|
- [Async Process](Async-Process.md)
|
||||||
* [Attributes](Attributes.md)
|
- [Attributes](Attributes.md)
|
||||||
* [Banning](Banning.md)
|
- [Banning](Banning.md)
|
||||||
* [Batch Code Processor](Batch-Code-Processor.md)
|
- [Batch Code Processor](Batch-Code-Processor.md)
|
||||||
* [Batch Command Processor](Batch-Command-Processor.md)
|
- [Batch Command Processor](Batch-Command-Processor.md)
|
||||||
* [Batch Processors](Batch-Processors.md)
|
- [Batch Processors](Batch-Processors.md)
|
||||||
* [Bootstrap & Evennia](Bootstrap-&-Evennia.md)
|
- [Bootstrap & Evennia](Bootstrap-&-Evennia.md)
|
||||||
* [Bootstrap Components and Utilities](Bootstrap-Components-and-Utilities.md)
|
- [Bootstrap Components and Utilities](Bootstrap-Components-and-Utilities.md)
|
||||||
* [Builder Docs](Builder-Docs.md)
|
- [Builder Docs](Builder-Docs.md)
|
||||||
* [Building Permissions](Building-Permissions.md)
|
- [Building Permissions](Building-Permissions.md)
|
||||||
* [Building Quickstart](Building-Quickstart.md)
|
- [Building Quickstart](Building-Quickstart.md)
|
||||||
* [Building a mech tutorial](Building-a-mech-tutorial.md)
|
- [Building a mech tutorial](Building-a-mech-tutorial.md)
|
||||||
* [Building menus](Building-menus.md)
|
- [Building menus](Building-menus.md)
|
||||||
* [Choosing An SQL Server](Choosing-An-SQL-Server.md)
|
- [Choosing An SQL Server](Choosing-An-SQL-Server.md)
|
||||||
* [Client Support Grid](Client-Support-Grid.md)
|
- [Client Support Grid](Client-Support-Grid.md)
|
||||||
* [Coding FAQ](Coding-FAQ.md)
|
- [Coding FAQ](Coding-FAQ.md)
|
||||||
* [Coding Introduction](Coding-Introduction.md)
|
- [Coding Introduction](Coding-Introduction.md)
|
||||||
* [Coding Utils](Coding-Utils.md)
|
- [Coding Utils](Coding-Utils.md)
|
||||||
* [Command Cooldown](Command-Cooldown.md)
|
- [Command Cooldown](Command-Cooldown.md)
|
||||||
* [Command Duration](Command-Duration.md)
|
- [Command Duration](Command-Duration.md)
|
||||||
* [Command Prompt](Command-Prompt.md)
|
- [Command Prompt](Command-Prompt.md)
|
||||||
* [Command Sets](Command-Sets.md)
|
- [Command Sets](Command-Sets.md)
|
||||||
* [Command System](Command-System.md)
|
- [Command System](Command-System.md)
|
||||||
* [Commands](Commands.md)
|
- [Commands](Commands.md)
|
||||||
* [Communications](Communications.md)
|
- [Communications](Communications.md)
|
||||||
* [Connection Screen](Connection-Screen.md)
|
- [Connection Screen](Connection-Screen.md)
|
||||||
* [Continuous Integration](Continuous-Integration.md)
|
- [Continuous Integration](Continuous-Integration.md)
|
||||||
* [Contributing](Contributing.md)
|
- [Contributing Docs](Contributing-Docs.md)
|
||||||
* [Coordinates](Coordinates.md)
|
- [Contributing](Contributing.md)
|
||||||
* [Custom Protocols](Custom-Protocols.md)
|
- [Coordinates](Coordinates.md)
|
||||||
* [Customize channels](Customize-channels.md)
|
- [Custom Protocols](Custom-Protocols.md)
|
||||||
* [Debugging](Debugging.md)
|
- [Customize channels](Customize-channels.md)
|
||||||
* [Default Command Help](Default-Command-Help.md)
|
- [Debugging](Debugging.md)
|
||||||
* [Default Exit Errors](Default-Exit-Errors.md)
|
- [Default Command Help](Default-Command-Help.md)
|
||||||
* [Developer Central](Developer-Central.md)
|
- [Default Exit Errors](Default-Exit-Errors.md)
|
||||||
* [Dialogues in events](Dialogues-in-events.md)
|
- [Developer Central](Developer-Central.md)
|
||||||
* [Directory Overview](Directory-Overview.md)
|
- [Dialogues in events](Dialogues-in-events.md)
|
||||||
* [Docs refactoring](Docs-refactoring.md)
|
- [Directory Overview](Directory-Overview.md)
|
||||||
* [Dynamic In Game Map](Dynamic-In-Game-Map.md)
|
- [Docs refactoring](Docs-refactoring.md)
|
||||||
* [EvEditor](EvEditor.md)
|
- [Dynamic In Game Map](Dynamic-In-Game-Map.md)
|
||||||
* [EvMenu](EvMenu.md)
|
- [EvEditor](EvEditor.md)
|
||||||
* [EvMore](EvMore.md)
|
- [EvMenu](EvMenu.md)
|
||||||
* [Evennia API](Evennia-API.md)
|
- [EvMore](EvMore.md)
|
||||||
* [Evennia Game Index](Evennia-Game-Index.md)
|
- [Evennia API](Evennia-API.md)
|
||||||
* [Evennia Introduction](Evennia-Introduction.md)
|
- [Evennia Game Index](Evennia-Game-Index.md)
|
||||||
* [Evennia for Diku Users](Evennia-for-Diku-Users.md)
|
- [Evennia Introduction](Evennia-Introduction.md)
|
||||||
* [Evennia for MUSH Users](Evennia-for-MUSH-Users.md)
|
- [Evennia for Diku Users](Evennia-for-Diku-Users.md)
|
||||||
* [Evennia for roleplaying sessions](Evennia-for-roleplaying-sessions.md)
|
- [Evennia for MUSH Users](Evennia-for-MUSH-Users.md)
|
||||||
* [Execute Python Code](Execute-Python-Code.md)
|
- [Evennia for roleplaying sessions](Evennia-for-roleplaying-sessions.md)
|
||||||
* [First Steps Coding](First-Steps-Coding.md)
|
- [Execute Python Code](Execute-Python-Code.md)
|
||||||
* [Game Planning](Game-Planning.md)
|
- [First Steps Coding](First-Steps-Coding.md)
|
||||||
* [Gametime Tutorial](Gametime-Tutorial.md)
|
- [Game Planning](Game-Planning.md)
|
||||||
* [Getting Started](Getting-Started.md)
|
- [Gametime Tutorial](Gametime-Tutorial.md)
|
||||||
* [Glossary](Glossary.md)
|
- [Getting Started](Getting-Started.md)
|
||||||
* [Grapevine](Grapevine.md)
|
- [Glossary](Glossary.md)
|
||||||
* [Guest Logins](Guest-Logins.md)
|
- [Grapevine](Grapevine.md)
|
||||||
* [HAProxy Config (Optional)](HAProxy-Config-(Optional).md)
|
- [Guest Logins](Guest-Logins.md)
|
||||||
* [Help System Tutorial](Help-System-Tutorial.md)
|
- [HAProxy Config (Optional)](HAProxy-Config-(Optional).md)
|
||||||
* [Help System](Help-System.md)
|
- [Help System Tutorial](Help-System-Tutorial.md)
|
||||||
* [Home](index.md)
|
- [Help System](Help-System.md)
|
||||||
* [How To Get And Give Help](How-To-Get-And-Give-Help.md)
|
- [How To Get And Give Help](How-To-Get-And-Give-Help.md)
|
||||||
* [How to connect Evennia to Twitter](How-to-connect-Evennia-to-Twitter.md)
|
- [How to connect Evennia to Twitter](How-to-connect-Evennia-to-Twitter.md)
|
||||||
* [IRC](IRC.md)
|
- [IRC](IRC.md)
|
||||||
* [Implementing a game rule system](Implementing-a-game-rule-system.md)
|
- [Implementing a game rule system](Implementing-a-game-rule-system.md)
|
||||||
* [Inputfuncs](Inputfuncs.md)
|
- [Inputfuncs](Inputfuncs.md)
|
||||||
* [Installing on Android](Installing-on-Android.md)
|
- [Installing on Android](Installing-on-Android.md)
|
||||||
* [Internationalization](Internationalization.md)
|
- [Internationalization](Internationalization.md)
|
||||||
* [Learn Python for Evennia The Hard Way](Learn-Python-for-Evennia-The-Hard-Way.md)
|
- [Learn Python for Evennia The Hard Way](Learn-Python-for-Evennia-The-Hard-Way.md)
|
||||||
* [Licensing](Licensing.md)
|
- [Licensing](Licensing.md)
|
||||||
* [Links](Links.md)
|
- [Links](Links.md)
|
||||||
* [Locks](Locks.md)
|
- [Locks](Locks.md)
|
||||||
* [Manually Configuring Color](Manually-Configuring-Color.md)
|
- [Manually Configuring Color](Manually-Configuring-Color.md)
|
||||||
* [Mass and weight for objects](Mass-and-weight-for-objects.md)
|
- [Mass and weight for objects](Mass-and-weight-for-objects.md)
|
||||||
* [Messagepath](Messagepath.md)
|
- [Messagepath](Messagepath.md)
|
||||||
* [MonitorHandler](MonitorHandler.md)
|
- [MonitorHandler](MonitorHandler.md)
|
||||||
* [NPC shop Tutorial](NPC-shop-Tutorial.md)
|
- [NPC shop Tutorial](NPC-shop-Tutorial.md)
|
||||||
* [New Models](New-Models.md)
|
- [New Models](New-Models.md)
|
||||||
* [Nicks](Nicks.md)
|
- [Nicks](Nicks.md)
|
||||||
* [OOB](OOB.md)
|
- [OOB](OOB.md)
|
||||||
* [Objects](Objects.md)
|
- [Objects](Objects.md)
|
||||||
* [Online Setup](Online-Setup.md)
|
- [Online Setup](Online-Setup.md)
|
||||||
* [Parsing command arguments, theory and best practices](Parsing-command-arguments,-theory-and-best-practices.md)
|
- [Parsing command arguments, theory and best practices](Parsing-command-arguments,-theory-and-best-practices.md)
|
||||||
* [Portal And Server](Portal-And-Server.md)
|
- [Portal And Server](Portal-And-Server.md)
|
||||||
* [Profiling](Profiling.md)
|
- [Profiling](Profiling.md)
|
||||||
* [Python 3](Python-3.md)
|
- [Python 3](Python-3.md)
|
||||||
* [Python basic introduction](Python-basic-introduction.md)
|
- [Python basic introduction](Python-basic-introduction.md)
|
||||||
* [Python basic tutorial part two](Python-basic-tutorial-part-two.md)
|
- [Python basic tutorial part two](Python-basic-tutorial-part-two.md)
|
||||||
* [Quirks](Quirks.md)
|
- [Quirks](Quirks.md)
|
||||||
* [RSS](RSS.md)
|
- [RSS](RSS.md)
|
||||||
* [Roadmap](Roadmap.md)
|
- [Roadmap](Roadmap.md)
|
||||||
* [Running Evennia in Docker](Running-Evennia-in-Docker.md)
|
- [Running Evennia in Docker](Running-Evennia-in-Docker.md)
|
||||||
* [Screenshot](Screenshot.md)
|
- [Screenshot](Screenshot.md)
|
||||||
* [Scripts](Scripts.md)
|
- [Scripts](Scripts.md)
|
||||||
* [Security](Security.md)
|
- [Security](Security.md)
|
||||||
* [Server Conf](Server-Conf.md)
|
- [Server Conf](Server-Conf.md)
|
||||||
* [Sessions](Sessions.md)
|
- [Sessions](Sessions.md)
|
||||||
* [Setting up PyCharm](Setting-up-PyCharm.md)
|
- [Setting up PyCharm](Setting-up-PyCharm.md)
|
||||||
* [Signals](Signals.md)
|
- [Signals](Signals.md)
|
||||||
* [Soft Code](Soft-Code.md)
|
- [Soft Code](Soft-Code.md)
|
||||||
* [Spawner and Prototypes](Spawner-and-Prototypes.md)
|
- [Spawner and Prototypes](Spawner-and-Prototypes.md)
|
||||||
* [Start Stop Reload](Start-Stop-Reload.md)
|
- [Start Stop Reload](Start-Stop-Reload.md)
|
||||||
* [Static In Game Map](Static-In-Game-Map.md)
|
- [Static In Game Map](Static-In-Game-Map.md)
|
||||||
* [Tags](Tags.md)
|
- [Tags](Tags.md)
|
||||||
* [Text Encodings](Text-Encodings.md)
|
- [Text Encodings](Text-Encodings.md)
|
||||||
* [TextTags](TextTags.md)
|
- [TextTags](TextTags.md)
|
||||||
* [TickerHandler](TickerHandler.md)
|
- [TickerHandler](TickerHandler.md)
|
||||||
* [Turn based Combat System](Turn-based-Combat-System.md)
|
- [Turn based Combat System](Turn-based-Combat-System.md)
|
||||||
* [Tutorial Aggressive NPCs](Tutorial-Aggressive-NPCs.md)
|
- [Tutorial Aggressive NPCs](Tutorial-Aggressive-NPCs.md)
|
||||||
* [Tutorial NPCs listening](Tutorial-NPCs-listening.md)
|
- [Tutorial NPCs listening](Tutorial-NPCs-listening.md)
|
||||||
* [Tutorial Searching For Objects](Tutorial-Searching-For-Objects.md)
|
- [Tutorial Searching For Objects](Tutorial-Searching-For-Objects.md)
|
||||||
* [Tutorial Tweeting Game Stats](Tutorial-Tweeting-Game-Stats.md)
|
- [Tutorial Tweeting Game Stats](Tutorial-Tweeting-Game-Stats.md)
|
||||||
* [Tutorial Vehicles](Tutorial-Vehicles.md)
|
- [Tutorial Vehicles](Tutorial-Vehicles.md)
|
||||||
* [Tutorial World Introduction](Tutorial-World-Introduction.md)
|
- [Tutorial World Introduction](Tutorial-World-Introduction.md)
|
||||||
* [Tutorial for basic MUSH like game](Tutorial-for-basic-MUSH-like-game.md)
|
- [Tutorial for basic MUSH like game](Tutorial-for-basic-MUSH-like-game.md)
|
||||||
* [Tutorials](Tutorials.md)
|
- [Tutorials](Tutorials.md)
|
||||||
* [Typeclasses](Typeclasses.md)
|
- [Typeclasses](Typeclasses.md)
|
||||||
* [Understanding Color Tags](Understanding-Color-Tags.md)
|
- [Understanding Color Tags](Understanding-Color-Tags.md)
|
||||||
* [Unit Testing](Unit-Testing.md)
|
- [Unit Testing](Unit-Testing.md)
|
||||||
* [Updating Your Game](Updating-Your-Game.md)
|
- [Updating Your Game](Updating-Your-Game.md)
|
||||||
* [Using MUX as a Standard](Using-MUX-as-a-Standard.md)
|
- [Using MUX as a Standard](Using-MUX-as-a-Standard.md)
|
||||||
* [Using Travis](Using-Travis.md)
|
- [Using Travis](Using-Travis.md)
|
||||||
* [Version Control](Version-Control.md)
|
- [Version Control](Version-Control.md)
|
||||||
* [Weather Tutorial](Weather-Tutorial.md)
|
- [Weather Tutorial](Weather-Tutorial.md)
|
||||||
* [Web Character Generation](Web-Character-Generation.md)
|
- [Web Character Generation](Web-Character-Generation.md)
|
||||||
* [Web Character View Tutorial](Web-Character-View-Tutorial.md)
|
- [Web Character View Tutorial](Web-Character-View-Tutorial.md)
|
||||||
* [Web Features](Web-Features.md)
|
- [Web Features](Web-Features.md)
|
||||||
* [Web Tutorial](Web-Tutorial.md)
|
- [Web Tutorial](Web-Tutorial.md)
|
||||||
* [Webclient brainstorm](Webclient-brainstorm.md)
|
- [Webclient brainstorm](Webclient-brainstorm.md)
|
||||||
* [Webclient](Webclient.md)
|
- [Webclient](Webclient.md)
|
||||||
* [Wiki Index](Wiki-Index.md)
|
- [Wiki Index](Wiki-Index.md)
|
||||||
* [Zones](Zones.md)
|
- [Zones](Zones.md)
|
||||||
|
- [index](index.md)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue