@@ -14,16 +14,19 @@ from a running FPP web UI, and rendered to `.docx` with Pandoc.
1414install.sh Install the build/capture dependencies (Debian/Ubuntu)
1515generate.sh Build FPP_Manual_v10.docx (+ .pdf) from the chapters (no FPP needed)
1616generate-web.sh Build the browsable web edition into web/site/ (no FPP needed)
17+ annotate.sh Render annotated screenshots into build/images/ for preview
1718capture.sh (Re)capture screenshots from a running FPP web UI
1819metadata.yaml Title-page metadata for the document
1920mkdocs.yml MkDocs config for the web edition (theme, nav, search)
2021OUTLINE.md Chapter plan / structure
2122chapters/ The manual, one Markdown file per chapter (combined in
2223 filename order, e.g. 00-*, 02-*, 20-* ...)
23- images/ Screenshots referenced by the chapters
24+ images/ Raw screenshots referenced by the chapters (kept pristine)
25+ annotations/ Optional YAML sidecars that mark up screenshots (see README there)
2426tools/
2527 build.sh Pandoc build (invoked by generate.sh)
2628 build-web.sh MkDocs build (invoked by generate-web.sh)
29+ annotate.py Bakes annotations/ onto images/ at build time (Pillow)
2730 shoot.py Headless-Chromium screenshot driver (Chrome DevTools
2831 Protocol; Python standard library only)
2932 shotlist.txt The list of pages to screenshot
@@ -78,6 +81,29 @@ Enable it once under **repo Settings → Pages → Build and deployment → Sour
7881"GitHub Actions"** ; the site then goes live at the ` site_url ` in ` mkdocs.yml `
7982(< https://falconchristmas.github.io/fpp-manual-generator/ > ).
8083
84+ ## Annotating screenshots
85+
86+ Screenshots can be marked up with arrows, boxes, numbered callouts, highlights,
87+ text labels, and blur/redactions — ** without touching the raw images** . The raw
88+ captures in ` images/ ` stay pristine (so ` capture.sh ` can re-shoot them); the markup
89+ lives in small YAML sidecars under ` annotations/ ` and is baked on at build time into
90+ ` build/images/ ` , which the ` .docx ` , ` .pdf ` , and web builds all use automatically.
91+
92+ ``` bash
93+ # 1. describe the overlays for images/status.png in annotations/status.yaml
94+ # 2. preview placement:
95+ ./annotate.sh # renders build/images/*.png (images/ untouched)
96+ # 3. rebuild the deliverables (they apply annotations for you):
97+ ./generate.sh
98+ ./generate-web.sh
99+ ```
100+
101+ Coordinates are pixels from the top-left of the source screenshot. The full sidecar
102+ format, the list of annotation types, and an example are in
103+ [ ` annotations/README.md ` ] ( annotations/README.md ) . Rendering needs ` python3-pil ` and
104+ ` python3-yaml ` (installed by ` ./install.sh ` ); if they're missing the build falls
105+ back to un-annotated images with a warning, so the manual still builds.
106+
81107## Requirements
82108
83109- ** pandoc** – Markdown → ` .docx ` .
@@ -86,8 +112,10 @@ Enable it once under **repo Settings → Pages → Build and deployment → Sour
86112 and skips the PDF (or run ` PDF=0 ./generate.sh ` to skip it deliberately).
87113- ** mkdocs-material** – builds the web edition (` ./generate-web.sh ` ). Only needed
88114 for the web output; the ` .docx ` /` .pdf ` build doesn't use it.
115+ - ** python3-pil** / ** python3-yaml** – render the screenshot annotations. Only
116+ needed if ` annotations/ ` is used; the build degrades to raw images without them.
89117- ** chromium** – headless screenshots. Started detached by ` shoot.py ` .
90- - ** python3** – build/capture scripts (standard library only; no ` pip ` needed) .
118+ - ** python3** – build/capture scripts.
91119- ** poppler-utils** – only used when refreshing content from a reference PDF.
92120- A ** running FPP** reachable over HTTP is required for ` capture.sh ` (not for
93121 ` generate.sh ` ).
0 commit comments