Skip to content

docs: restructure README, combined feature section, and local PDF build - #5

Merged
charlesangus merged 2 commits into
masterfrom
docs/reorganize-and-local-pdf
Jul 6, 2026
Merged

docs: restructure README, combined feature section, and local PDF build#5
charlesangus merged 2 commits into
masterfrom
docs/reorganize-and-local-pdf

Conversation

@charlesangus

Copy link
Copy Markdown
Owner

Documentation-only work (plus two setObjectName additions the panel screenshots depend on).

README restructure

  • Features reordered, led by a new Regular Knob Readout section.
  • Channels / Masks / Merges / Mix folded into a single Channels, Masks, Merges and Mix section with one combined screenshot.
  • Node Class + File Readout gathered into an Other Readouts section, placed just before the de-overlap features.
  • Note that De-overlap All is handy the first time you open a script after enabling Labelmaker.
  • Configuration: dropped the Config Cascade and Environment Variables subsections; Preferences is now a subsection of Configuration.

User Guide PDF

  • Intro gets its own Introduction section after the table of contents.
  • Body starts on a fresh page after the ToC.
  • Stronger widow/orphan protection — a heading is never stranded at a page foot (needspace guarded with \if@nobreak so a section heading stays with an immediately-following subsection).

PDF build moved local + committed

The GitHub-hosted ubuntu-24.04 runner 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 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.
  • Regenerated the DAG screenshots for the new layout; removed the now-orphaned PNGs.
  • CLAUDE.md updated to document the local-build-and-commit flow.

Verification

  • ruff check . clean, pytest tests/ — 62 passed.
  • make pdf builds cleanly (no stub, no lmodern); every page reviewed — correct section order, no lone headings, images anchored beside their text.

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.
Copilot AI review requested due to automatic review settings July 6, 2026 04:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md feature sections and switched screenshots to repo-relative docs/images/*.png paths.
  • Added a local docs build toolchain (Makefile, pandoc defaults + Lua filter, README→User Guide derivation script) and documented the workflow in CLAUDE.md.
  • Updated the release workflow to bundle committed docs/user-guide.pdf and docs/images/*.png instead 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.

Comment thread Makefile Outdated
Comment on lines +5 to +6
# make pdf build docs/user-guide.pdf from the README (requires
# pandoc + xelatex only — no Nuke, so this runs in CI)

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ffad941 — the make pdf header comment now states the PDF is built locally and committed (CI does not build the docs).

Comment thread docs/latex/training_doc.cls Outdated
% training document template

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{trainingDoc}

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
@charlesangus
charlesangus merged commit 0bdf668 into master Jul 6, 2026
2 checks passed
@charlesangus
charlesangus deleted the docs/reorganize-and-local-pdf branch July 6, 2026 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants