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 logo

Curry Leaves Presenter

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

PyPI version license: MIT python: >=3.11 types included GitHub repo

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

curry-leaves-presenter demo

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.1.0.tar.gz (5.1 MB 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.1.0-py3-none-any.whl (108.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: curry_leaves_presenter-1.1.0.tar.gz
  • Upload date:
  • Size: 5.1 MB
  • 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.1.0.tar.gz
Algorithm Hash digest
SHA256 eceeff1981a6561c8befb86cc1893438123a3cc07d6956dc96e7a7f803c31bfa
MD5 e974bc60bd29444b2ee854601db058b0
BLAKE2b-256 90adc90be7ee2ada9c1372440922453b774ae882d8fe0f023b0a89fc2045847b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for curry_leaves_presenter-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2a03fbdc8072224caec29ea3f83f85cbb0cdb63b1cf3bf065e6f50d4fe7567e
MD5 43023bd7a00960332b0b26c25ffc04c1
BLAKE2b-256 34b073c42503db2b45336b754ef71993ab555d0c6931df979dda020b6ffe08a8

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