-
Notifications
You must be signed in to change notification settings - Fork 4
mkdocs workfow
Please first read through this RealPython tutorial.
Ensure you are using a conda environment that has mkdocs and the required additional packages installed (you can
install the ready-made mkdocs-env by running conda env create --file .devcontainer/env-files/mkdocs-env.yml and then
activating it with conda activate mkdocs).
From the main folder of your repository (where your pyproject.toml is), run:
mkdocs new . # initialise a new mkdocs projectThis will create both a mkdocs.yml file and a folder docs/ containing an index.md file.
The only required component of the yml is the title field; however, we want to build docs using the docstrings of our functions, and we are using the newer recommended src/package_name layout for our project, so mkdocs needs a bit of help pointing to the correct folders.
site_name: NAME HERE
theme:
name: "material"
plugins:
- mkdocstrings:
handlers:
python:
paths: [src] # search packages in the src folder
nav:
- FILE NAME HERE: index.mdAny additional markdown files placed in the docs/ folder can be added here.
Either create an API reference markdown file in the docs/ folder, or add a section to the index.md file.
If you have added sensible and well-formatted comments and docstrings to your code, you can use the mkdocstring
plugin to automatically build your documentation.
Simply include:
::: YOUR_PACKAGE_NAME
in one of the markdown files included in your docs to include top-level package notes in your package __init__.py file.
To include function-level documentation, just include:
::: YOUR_PACKAGE_NAME.MODULE_NAME
To serve the docs website locally, just run:
TZ=UTC mkdocs serve # serve the mkdocs website without time zone errorsWhen you are happy with your documentation content, you can run:
TZ=UTC mkdocs build # build your docs files in a /site dirto output documentation files, which you can add and commit to your git repository.
To publish your documentation, switch on GH pages for your repository, and point them to the gh-pages branch. In actions, set actions to have permissions to read and write.
Then simply run:
TZ=UTC mkdocs gh-deploy # deploy the website - change settings on your gh repo to allow writing by actionsto push your changes and publish the documentation on GitHub pages.