Skip to content

Getting started

Lattice runs on Node.js. npm install pulls in Marp CLI, the Mermaid CLI, and Puppeteer (which downloads a matching Chromium). Requires Node 22+.

Terminal window
git clone https://github.com/slidewright/lattice.git
cd lattice
npm install

The repository ships two gallery decks as ground-truth fixtures for what the renderer produces. Render them with the bundled emulator (no network required):

Terminal window
node lattice-emulator.js examples/gallery.md examples/gallery.pdf
node lattice-emulator.js examples/gallery-mermaid.md examples/gallery-mermaid.pdf

Open examples/gallery.pdf — that is the fastest answer to “what does this produce?”.

A deck is a Markdown file with a small front-matter block selecting a palette. Each slide is separated by ---, and a <!-- _class: ... --> comment picks the layout.

---
marp: true
theme: indaco
paginate: true
---
<!-- _class: title -->
# From Signal to Strategy
`Product Strategy · Q3 2025`
A decision framework for product leaders.
---
<!-- _class: big-number -->
## 38%
of pipeline stalls trace to a single approval step.

Build it to PDF with the preferred path, Marp CLI:

Terminal window
npx @marp-team/marp-cli deck.md --pdf --output deck.pdf

The same source can emit other delivery formats:

Terminal window
npx @marp-team/marp-cli deck.md --html --output deck.html
npx @marp-team/marp-cli deck.md --pptx --output deck.pptx
npx @marp-team/marp-cli deck.md --images png # 3840×2160 PNG set

Run from outside the repo root? Pass the palettes explicitly:

Terminal window
npx @marp-team/marp-cli deck.md \
--theme-set themes/indaco.css themes/cuoio.css lattice.css \
--image-scale 3 --pdf --output deck.pdf