Skip to main content

Turn markdown into a presentation — a small, dependency-light Python library and CLI. Plain markdown works out of the box; an optional directive dialect adds charts, columns, callouts, timelines, and more.

Project description

curry-leaves-presenter

Turn markdown into a presentation. A small, dependency-light Python library and CLI — self-contained HTML output with keyboard navigation, transitions, and charts.

Plain markdown works out of the box. An optional directive dialect adds columns, charts, callouts, timelines, and more for when you want finer control.

Install

pip install curry-leaves-presenter

CLI

curry-presenter build talk.md              # writes talk.html
curry-presenter build talk.md -o out.html --theme minimal-dark --open
curry-presenter validate talk.md            # print diagnostics, exit 1 on errors
curry-presenter themes                      # list built-in themes

Library

from curry_leaves_presenter import Deck

deck = Deck.from_file("talk.md")
deck.validate()              # -> list[Diagnostic]
deck.to_html("talk.html", theme="minimal-dark")

html = deck.render_html()    # in-memory string, no file written

Plain markdown mode

Any markdown file works. Slides are separated by --- on its own line; the first heading on a slide becomes its title. A <!-- notes: ... --> comment becomes speaker notes.

---
title: My Talk
theme: minimal-dark
---

# My Talk
A subtitle line here

---

## Agenda

- Point one
- Point two

<!-- notes: remember to slow down here -->

---

> A pull-quote slide
> renders in the "quote" layout automatically

Layout is chosen automatically: a lone H1 + short subtitle → title slide; a heading with no body → section slide; an all-blockquote body → quote slide; anything else → content slide.

Directive mode

Wrap slides in :::slide ... ::: to unlock layouts, charts, columns, callouts, timelines, textboxes, and more:

---
title: Quarterly Review
theme: enterprise-blue
---

:::slide layout="two-column"
# Results

:::column
Revenue grew 40% quarter over quarter, driven mostly by the new
enterprise tier.
|
:::chart type="bar"
- Q1: 40
- Q2: 65
- Q3: 82
- Q4: 110
:::
:::
:::

:::slide layout="content"
# Key Risks

:::callout type="warning"
Churn ticked up 2pts in the SMB segment.
:::
:::

Directive blocks: slide, column, notes, chart (bar/pie/line/doughnut), wordart (gradient/shadow/outline), callout (info/warning/error/success), timeline, compare, image, textbox, clock, timer.

Layouts: title, content, two-column, three-column, section, blank, big-stat, quote, agenda, image-split.

Both modes can appear in the same deck — if any :::slide block is found, directive mode is used for the whole file.

See docs/syntax-reference.md for the full front matter field list, every directive's attributes and defaults, the auto-layout rules, the theme YAML schema, and every diagnostic code.

Themes

Eight built-in themes: enterprise-blue, minimal-dark, clean-white, executive-navy, startup-violet, nature-green, warm-coral, high-contrast. Pass a path to a custom theme YAML to --theme / theme= — schema documented in docs/syntax-reference.md.

Diagnostics

Parsing and validation never raise on malformed input — they collect Diagnostic objects instead (severity, code, message, slide_index). curry-presenter build prints these to stderr and exits non-zero on errors (or on warnings with --strict). Full code list in docs/syntax-reference.md.

What's not in v1

PPTX and PDF export are planned (pip install curry-leaves-presenter[pptx] / [pdf] are reserved) but not wired up yet — v1 ships self-contained HTML only.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

curry_leaves_presenter-1.0.0.tar.gz (113.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

curry_leaves_presenter-1.0.0-py3-none-any.whl (108.6 kB view details)

Uploaded Python 3

File details

Details for the file curry_leaves_presenter-1.0.0.tar.gz.

File metadata

  • Download URL: curry_leaves_presenter-1.0.0.tar.gz
  • Upload date:
  • Size: 113.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for curry_leaves_presenter-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5dfd39d2442b34541782a5e56d7e6bf093d4d88f8ab06775174cc31a438f332a
MD5 68f9f4d511e3e21ba71f0bd82fae726b
BLAKE2b-256 39b155cca323798e534c61d1e329fdaef734ba2bc87ea0fb92c5a2182564c0d2

See more details on using hashes here.

File details

Details for the file curry_leaves_presenter-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for curry_leaves_presenter-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7389bb00de87f2f80bd1ffff1dfa353f89ced490145e1aab250267bd9c74fc2b
MD5 1acd2bc9807f47a8ec56565bb043061e
BLAKE2b-256 8d8704555a801de1c331b0c573d7967e2e4c5946f69a118951eeafa853772201

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page