-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Documentation website #110
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't seen the rendered page, but it's already looking pretty solid!
My suggestion would be that we make sure the markdown files are at a good level, and then all other API documentation can come about as part of future patches (e.g. wherever a file is changed, docstrings should be made in the affected file), so that we can stay agile
Thanks for the review, but do note this is still a draft. I haven't cleaned it up yet, and many parts are still under construction without necessarily being marked as such. I'll gladly hear your review once it's finished! |
My current plan is indeed to finish the remaining pages under Overview (performance, transformation, additional tools), make some other small changes, clean up the tutorial and to then publish. The API reference can be done gradually. |
@Flashing-Blinkenlights, actually, if you do feel like reviewing, the following pages are pretty much done:
There may be some broken links, which isn't much of a problem. I get notified of those by the build system, and I'll fix them all up before merging. I would however appreciate it if you checked the code examples (do they run?). I did check them all myself, but I could always have made a mistake. In the long run we probably want to automte this somehow (maybe with this), but that's very low priority. I won't be making any more changes to the overall structure in this PR, as it would be too much work at this point. It's more important to actually get the docs up. I do strongly recommend looking at the actual website when reviewing, building it shouldn't be too hard with the instructions in the PR. |
9c9d3c5
to
33145a2
Compare
I've filled in the missing bits in the tutorial and added images, so that part is fully done now! |
I've now also finished Overview - Improving Editor performance and simplified Overview - World slices and heightmaps a little. |
63c0282
to
fdd446a
Compare
The documentation is now in a publishable state! I'm now going to look into putting it online with readthedocs. The docs will probably need to be on the master branch for that, so I'm going to merge this. |
This in-progress PR will add proper documentation to GDPC!
The documentation is written with Sphinx. Sphinx supports many output formats, but my main focus is its HTML output (I'm using Sphinx-immaterial as the HTML theme).
Some screenshots
The documentation contains both fully hand-written parts and an API reference that gets automatically generated from the docstrings in the source code. A consequence of using Sphinx's API reference generation tooling is that docstrings need to be written in reStructuredText. This PR updates all docstrings to the new format. The hand-written parts are written in Markdown using Myst.
My plan is to host the documentation on readthedocs.io, which has many fantastic features that, compared to the current in-repository examples, make it much easier to point users to the correct version of the documentation. I'll set things up such that new version releases will automatically update the
stable
version of the docs, and pushes to master will updatelatest
.The documentation will replace the in-repository examples, so they'll be removed when this PR is done.
To preview the documentation, checkout the
docs-sphinx
branch,cd
todocs
, install the requirements inrequirements.txt
(optionally in a virtual environment), build and serve the documentation withmake livehtml
and visit http://127.0.0.1:8000 in a browser.Because this PR touches almost every part of the code, and because it would be annoying if the docs became outdated before they're even published, all major changes to GDPC are on-hold until the docs are live.