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:
@@ -1 +1,3 @@
|
|||||||
*.pdf
|
*.pdf
|
||||||
|
*.pptx
|
||||||
|
!reference.pptx
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -36,9 +36,12 @@ who needed your stories already found them.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
::: {.closing}
|
:::: {.closing .columns}
|
||||||
|
::: {.column width="30%"}
|
||||||
{.author-photo}
|
{.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}
|
||||||
:::
|
:::
|
||||||
|
::::
|
||||||
|
|||||||
Binary file not shown.
@@ -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
@@ -36,9 +36,12 @@ who needed your stories already found them.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
::: {.closing}
|
:::: {.closing .columns}
|
||||||
|
::: {.column width="30%"}
|
||||||
{.author-photo}
|
{.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}
|
||||||
:::
|
:::
|
||||||
|
::::
|
||||||
|
|||||||
Reference in New Issue
Block a user