docs: restructure README, combined feature section, and local PDF build - #5
Conversation
Reorganise the Features section and lead with a "Regular Knob Readout"
section; fold Channels / Masks / Merges / Mix into one section with a
single combined screenshot, and gather Node Class + File Readout into an
"Other Readouts" section ahead of the de-overlap features. Note that
De-overlap All is handy the first time you open a script after enabling
Labelmaker.
Configuration section: drop the Config Cascade and Environment Variables
subsections and fold Preferences in as a subsection of Configuration.
User Guide PDF: give the intro its own "Introduction" section after the
table of contents, start the body on a fresh page after the ToC, and
strengthen widow/orphan protection so a heading is never stranded at a
page foot (guard needspace with \if@nobreak so a section heading stays
with an immediately-following subsection).
Build the PDF locally and commit it: the GitHub runner has neither
pandoc/TeX Live nor Nuke, so CI no longer builds any docs — it only
bundles the committed docs/user-guide.pdf and docs/images/*.png into the
release zip. Suppress pandoc's spurious \usepackage{lmodern} under
xelatex so `make pdf` builds with no extra TeX dependency.
Regenerate the DAG screenshots for the new layout and add setObjectName
targets so the panel screenshots can be captured.
There was a problem hiding this comment.
Pull request overview
This PR updates Labelmaker’s documentation to make the README the single source of truth, adds a locally-built (and committed) User Guide PDF pipeline, and refreshes the committed screenshots/PDF assets used in releases (plus two setObjectName additions to support deterministic panel screenshots).
Changes:
- Restructured
README.mdfeature sections and switched screenshots to repo-relativedocs/images/*.pngpaths. - Added a local docs build toolchain (
Makefile, pandoc defaults + Lua filter, README→User Guide derivation script) and documented the workflow inCLAUDE.md. - Updated the release workflow to bundle committed
docs/user-guide.pdfanddocs/images/*.pnginstead of generating docs in CI.
Reviewed changes
Copilot reviewed 14 out of 28 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Restructures documentation and switches images to docs/images/* relative paths; references committed PDF. |
| Makefile | Adds local targets to regenerate screenshots and build the committed User Guide PDF. |
| labelmaker_prefs_dialog.py | Adds setObjectName to support automated panel screenshot targeting. |
| labelmaker_config_editor.py | Adds setObjectName to support automated panel screenshot targeting. |
| docs/screenshots/panels.scenarios.json | Defines screenshotter scenarios for capturing Preferences and Config Editor panels. |
| docs/screenshots/features.nk | Adds the Nuke script used to capture the DAG feature screenshots. |
| docs/screenshots/build_features_nk.py | Adds a generator script for features.nk to keep screenshots reproducible. |
| docs/screenshots/bootstrap/menu.py | Adds a clean bootstrap to load Labelmaker and open dialogs non-modally for capture sessions. |
| docs/pandoc/pdf.yaml | Adds pandoc defaults for consistent PDF generation with the project LaTeX class. |
| docs/pandoc/float-images.lua | Adds a pandoc Lua filter to anchor images beside text and improve table column wrapping in PDF output. |
| docs/pandoc/build_user_guide_md.py | Adds README→User Guide Markdown derivation (drops install section, adds title block). |
| docs/latex/training_doc.cls | Adds/updates the LaTeX class used to style the generated PDF and enforce pagination rules. |
| docs/images/.gitkeep | Keeps the images directory present in git. |
| CLAUDE.md | Documents the local-build-and-commit documentation workflow and regeneration commands. |
| .gitignore | Ignores local tools dir, Nuke autosaves, capture HOME, and intermediate PDF build artifacts. |
| .github/workflows/release.yml | Updates release packaging to include committed PDF and screenshots rather than building docs in CI. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # make pdf build docs/user-guide.pdf from the README (requires | ||
| # pandoc + xelatex only — no Nuke, so this runs in CI) |
There was a problem hiding this comment.
Fixed in ffad941 — the make pdf header comment now states the PDF is built locally and committed (CI does not build the docs).
| % training document template | ||
|
|
||
| \NeedsTeXFormat{LaTeX2e} | ||
| \ProvidesClass{trainingDoc} |
There was a problem hiding this comment.
Fixed in ffad941 — \ProvidesClass is now training_doc, matching the filename and pandoc's documentclass: training_doc, so the requested-vs-provided class warning is gone.
- Makefile: correct the `make pdf` header comment; the PDF is built locally and committed, not built in CI. - training_doc.cls: rename the provided class to `training_doc` so it matches the filename and pandoc's `documentclass: training_doc`, silencing LaTeX's requested-vs-provided class mismatch warning. - Rebuild the committed User Guide PDF.
Documentation-only work (plus two
setObjectNameadditions the panel screenshots depend on).README restructure
User Guide PDF
needspaceguarded with\if@nobreakso a section heading stays with an immediately-following subsection).PDF build moved local + committed
The GitHub-hosted
ubuntu-24.04runner ships neither pandoc/TeX Live nor Nuke, so installing the TeX Live toolchain on every release was slow and heavy. The PDF and screenshots are now built locally and committed; CI no longer builds any docs — it only bundles the committeddocs/user-guide.pdfanddocs/images/*.pnginto the release zip.\usepackage{lmodern}under xelatex somake pdfbuilds with no extra TeX dependency.CLAUDE.mdupdated to document the local-build-and-commit flow.Verification
ruff check .clean,pytest tests/— 62 passed.make pdfbuilds cleanly (no stub, no lmodern); every page reviewed — correct section order, no lone headings, images anchored beside their text.