Add pptx slide-deck build target for screen-share recordings

Same markdown now also builds a PowerPoint deck (make slides /
make template.pptx) alongside the existing PDF, for recording
walkthrough videos. Styling comes from reference.pptx since pandoc's
pptx writer ignores style.css; its theme was hand-tuned to match the
PDF's dark palette and fonts.

Restructure the closing block into a two-column div so the author
photo survives in slide exports (pandoc drops images sharing a plain
div with paragraph text), with a CSS override so the PDF keeps its
original centered layout.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-06 10:47:44 -04:00
parent a6d0bd4521
commit c80f51f865
7 changed files with 68 additions and 9 deletions
+2
View File
@@ -1 +1,3 @@
*.pdf *.pdf
*.pptx
!reference.pptx
+17 -7
View File
@@ -1,10 +1,12 @@
PANDOC = pandoc PANDOC = pandoc
PDF_ENGINE = weasyprint PDF_ENGINE = weasyprint
TEMPLATE = template.html TEMPLATE = template.html
CSS = style.css CSS = style.css
PARTNERS = $(patsubst %.md,%.pdf,$(wildcard partners/*.md)) PPTX_REF = reference.pptx
PARTNERS = $(patsubst %.md,%.pdf,$(wildcard partners/*.md))
PPTX_PARTNERS = $(patsubst %.md,%.pptx,$(wildcard partners/*.md))
.PHONY: all clean .PHONY: all slides clean
all: template.pdf $(PARTNERS) all: template.pdf $(PARTNERS)
@@ -13,8 +15,16 @@ all: template.pdf $(PARTNERS)
%.pdf: %.md $(TEMPLATE) $(CSS) %.pdf: %.md $(TEMPLATE) $(CSS)
$(PANDOC) $< -o $@ --template=$(TEMPLATE) --pdf-engine=$(PDF_ENGINE) --standalone $(PANDOC) $< -o $@ --template=$(TEMPLATE) --pdf-engine=$(PDF_ENGINE) --standalone
# Slide deck for screen-share recordings. pptx ignores style.css -- its look
# (colors/fonts) comes from reference.pptx's slide master instead, so that's
# the file to edit if the slide theme needs to change.
slides: template.pptx $(PPTX_PARTNERS)
%.pptx: %.md $(PPTX_REF)
$(PANDOC) $< -o $@ --reference-doc=$(PPTX_REF)
clean: clean:
rm -f template.pdf partners/*.pdf rm -f template.pdf template.pptx partners/*.pdf partners/*.pptx
partnership: template.md partnership: template.md
cp template.md partners/$(SLUG).md cp template.md partners/$(SLUG).md
+32
View File
@@ -25,6 +25,31 @@ make clean # removes generated PDFs (never touches the .md
`make` finds the source `.md` file automatically from the `.pdf` name you ask for, so `make` finds the source `.md` file automatically from the `.pdf` name you ask for, so
building any filled-in template is just naming the PDF you want. building any filled-in template is just naming the PDF you want.
## Building slides
For recording a screen-share walkthrough of the guide, the same markdown builds
a PowerPoint deck instead of a PDF:
```sh
make template.pptx # slide deck for the base version
make partners/<slug>.pptx # a specific partnership's deck
make slides # template.pptx + every partners/*.pptx
```
Pandoc turns each `##` heading into its own slide, matching the "one step per
page" layout of the PDF. If you want scripted talking points per slide, add a
`::: notes` ... `:::` fenced div under a heading — pandoc exports those as
speaker notes rather than slide body text.
Pandoc's pptx writer doesn't read `style.css` (pptx isn't HTML-based), so the
slide theme instead comes from `reference.pptx` — a PowerPoint file whose
slide master carries the colors and fonts, built once by hand-editing its
theme XML to mirror `style.css`'s dark background, heading blue, body text,
and accent colors, plus Roboto/Open Sans fonts. Edit it in PowerPoint/Keynote/
Google Slides (or its `ppt/theme/theme1.xml` and
`ppt/slideMasters/slideMaster1.xml` directly) if the slide theme ever needs to
diverge from or resync with the PDF's.
## Starting a new partnership ## Starting a new partnership
```sh ```sh
@@ -49,3 +74,10 @@ make partners/<slug>.pdf
file, just update the front matter. file, just update the front matter.
- `style.css` is the single source of truth for the visual theme. Edit it once and - `style.css` is the single source of truth for the visual theme. Edit it once and
`make all` rebuilds every partner PDF with the change. `make all` rebuilds every partner PDF with the change.
- The closing block's `:::: {.closing .columns}` / `::: {.column} :::` structure
matters for slides: pandoc's pptx writer silently drops an image if it shares a
plain div with paragraph text, but keeps it in a two-column div. `.closing .column`
in `style.css` flattens those columns back to a centered stack for the PDF, so the
printed page looks the same as before. Keep that structure when editing the
closing copy — a plain `::: {.closing}` div will make the author photo disappear
from the slide deck.
+5 -1
View File
@@ -36,9 +36,12 @@ who needed your stories already found them.
![](images/step-3-computer.jpg) ![](images/step-3-computer.jpg)
::: {.closing} :::: {.closing .columns}
::: {.column width="30%"}
![](images/author-photo.jpg){.author-photo} ![](images/author-photo.jpg){.author-photo}
:::
::: {.column width="70%"}
By: Will Estes — ReGround By: Will Estes — ReGround
**Are you wondering how to get your stories in front of readers who need them?** **Are you wondering how to get your stories in front of readers who need them?**
@@ -49,3 +52,4 @@ your stories to reach the readers who need them.
[Get a Free Strategy Session](https://reground.org/talk){.cta-button} [Get a Free Strategy Session](https://reground.org/talk){.cta-button}
::: :::
::::
BIN
View File
Binary file not shown.
+7
View File
@@ -74,6 +74,13 @@ img {
text-align: center; text-align: center;
} }
/* .closing is also a pandoc "columns" div (photo | text) so its image
survives in slide exports -- neutralize the side-by-side layout here so
the PDF still renders it as a centered stack. */
.closing .column {
width: auto !important;
}
.closing .author-photo { .closing .author-photo {
width: 100px; width: 100px;
border-radius: 50%; border-radius: 50%;
+5 -1
View File
@@ -36,9 +36,12 @@ who needed your stories already found them.
![](images/step-3-computer.jpg) ![](images/step-3-computer.jpg)
::: {.closing} :::: {.closing .columns}
::: {.column width="30%"}
![](images/author-photo.jpg){.author-photo} ![](images/author-photo.jpg){.author-photo}
:::
::: {.column width="70%"}
By: Will Estes — ReGround By: Will Estes — ReGround
**Are you wondering how to get your stories in front of readers who need them?** **Are you wondering how to get your stories in front of readers who need them?**
@@ -49,3 +52,4 @@ your stories to reach the readers who need them.
[Get a Free Strategy Session](https://reground.org/talk){.cta-button} [Get a Free Strategy Session](https://reground.org/talk){.cta-button}
::: :::
::::