docs(humans): ship the MD explainer as a PDF with the images baked in

The HTML references screenshots relatively, so it only renders inside a
checkout -- mailing the file on its own gives broken images. The PDF is one
self-contained file, which is what actually gets sent to Ozlem.

- tools/humans_to_pdf.py: renders .humans/*.html via headless Chrome (or
  Edge), so the output is what the browser shows. HTML stays the source.
- @media print block on the page: the wide tables and the pipeline diagram
  scroll on screen but would be cut off at the paper edge; this reflows
  them and keeps figures, callouts and table rows off page breaks.
  Verified at A4 content width -- 6 pages, both screenshots embedded.
- *.pdf -> LFS. Each regeneration is a whole new ~2 MB blob, and unlike
  png/jpg there are no PDFs tracked raw yet, so there is no history to
  rewrite by adding it now.

Also corrects working-files.md: it claimed .gitattributes does not LFS-track
.blend, which was true when written and is no longer -- .blend/.zprj/.obj/
.npy/.npz have since been added. The note now covers what is actually still
excluded (png/jpg, deliberately) and why that makes QA renders scratch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-07 09:31:37 -07:00
parent 3ba86b2ea8
commit 4bbd1a1732
6 changed files with 157 additions and 9 deletions
+5
View File
@@ -18,6 +18,11 @@
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
# Generated .humans/ PDFs (tools/humans_to_pdf.py). Each regeneration is a whole
# new ~2 MB blob, so LFS from the start — unlike png/jpg above, none are tracked
# raw yet, so there is no history to rewrite.
*.pdf filter=lfs diff=lfs merge=lfs -text
# Reallusion CC / iClone asset containers
*.iAvatar filter=lfs diff=lfs merge=lfs -text
*.iavatar filter=lfs diff=lfs merge=lfs -text