This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the source repository for QGIS Tutorials and Tips. It is a documentation/content site, not an application — tutorials are written in reStructuredText (.rst) and built into static HTML with Sphinx. There is no test suite or linter.
Full setup and build instructions: @README.md
- New tutorials go under
source/docs/3/(current QGIS 3.x content). source/docs/(without the3/) is legacy QGIS 2.x content, much of it superseded — pages there often contain a.. warning::redirect to thedocs/3/equivalent. Don't add new tutorials here.- Tutorial images/assets live in
resources/en/docs/. Sample datasets referenced by tutorials live indownloads/. i18n/<lang>/LC_MESSAGES/holds translated.po/.mocatalogs (~22 languages), managed via Transifex — don't hand-edit these.
- Set
export LC_ALL=Cbefore runningmake(locale error otherwise) — see README for the persistent setup. make htmlbuilds English HTML intobuild/html/en/; preview withpython -m http.serverathttp://localhost:8000/build/html/en/.make gh-pagesswitches to thegh-pagesbranch, commits, and force-pushes directly — avoid running it with uncommitted changes onmaster. In normal use it's unnecessary: the GitHub Action (.github/workflows/deploy.yml) deploysgh-pagesautomatically on every push tomaster.
Run sphinx-lint <file>.rst against files you add or edit before committing (it's Sphinx-aware, unlike doc8/rstcheck, so it doesn't false-positive on Sphinx roles like :menuselection: or code-block:: none). Don't run it repo-wide — the existing content has a large backlog of pre-existing whitespace/tab warnings that aren't worth fixing as a side effect of unrelated changes.
Follow the formatting guide table in README.md (title/heading underlines, :menuselection:, :guilabel:, kbd:, literal layer/file names, etc.) for all tutorial content.
Commit messages in this repo are almost always the terse update — match that existing style rather than writing descriptive messages.