Documentation¶
This site is Sphinx with the
Furo theme, written in Markdown through the
MyST parser. The pages live in docs/,
the configuration in docs/conf.py.
The architecture, invariants and conventions pages are the contributor’s map of the code. Read them before you change anything. There is no API reference generated from docstrings: the plugin cannot be imported without QGIS, and the documentation job does not install QGIS. Most pages are written by hand. The changelog and the code of conduct are included from the repository root. The icon style guide is maintained by hand. Icon previews are optional local build output and are not part of the site.
Build it¶
python -m pip install -U -r requirements/documentation.txt
sphinx-build -b html -d docs/_build/cache -j auto -q docs docs/_build/html
Open docs/_build/html/index.html. While you write, let the site rebuild on
save:
sphinx-autobuild -b html docs/ docs/_build/html
Then open http://127.0.0.1:8000.
A push to main builds the site and deploys it to GitHub Pages. The same job
publishes plugins.xml, the feed that makes every commit installable from
inside QGIS.
The build must stay silent: sphinx-build -b html -q docs docs/_build/html
prints nothing when the site is healthy. A warning means something is broken,
such as a link to a page that moved or a page no listed page points at. CI
builds with -W, so a warning fails the documentation job.
Keep it current¶
Documentation is part of the change, not a follow-up. A pull request that changes what the user sees also updates the pages that describe it. What to update:
What changed |
What to update |
|---|---|
A tab, a button, a form or a message |
the matching section of the usage guide, and |
The dialog’s layout, a form or a tab |
the guide and its screenshots: run |
A new resource type or tab |
a section in the guide with its screenshots (add the tab and its main form to the capture script), and a row in the feature tables of |
How the plugin is installed or configured |
installation and the configuration section of |
A development step, a tool or a command |
the page here that teaches it, and the conventions page if a contributor would get it wrong |
An interface icon or where it is used |
register it in |
The logo or any brand asset |
change |
A dependency or a workflow path filter |
|
Two conventions the whole repository follows, this site included: no em dashes, and 2 short sentences in place of one long one.