Skip to main content

mate


mate is a Python application for creating presentations by writing Markdown files. The goal is to build aesthetically pleasing presentations in a short amount of time while staying highly customizable and versatile: the content is plain Markdown, and the details can be tweaked with a short, clean syntax (or at least that's the intention).

The idea behind mate is to create slides fast, in a declarative and programmatic way, and let the template take care of arranging things and giving them their look. Since the content knows nothing about the aesthetics, restyling a whole presentation amounts to switching its template.

Templates get a lot of freedom and tools, and they are constructive: a template can be as small as a background change or as ambitious as a full visual identity, with its own functions and slide designs, and a deck can combine several of them.

Features

  • Slides are written in plain Markdown: # opens a slide, and bold, italics, code and math work as usual.
  • Whatever Markdown cannot express, the extended syntax can: any element of a slide can be created, styled, positioned and aligned.
  • Templates control fonts, colors, backgrounds and slide logic. Use a built-in one, or write your own as a small Python file next to your deck.
  • Slides reveal their content in stages, with a versatile system of pauses, in-place reveals and overwrites.
  • There is a drawing API as well: shapes, Bézier curves, images and gradients can go on a slide alongside the text.
  • mate is fast: everything is heavily cached, so builds stay quick even for large decks.
  • There is nothing else to install: no LaTeX, no external tools. The rendering backend ships inside the package.

Getting started

To get mate, all you need is yerba:

pip install yerba

Write a deck:

# A slide title

Some content with **bold**, _italic_ and inline $x^2$ math.

Words can be styled in place: [this is red][color="red"], and
[this is translucent and smaller][opacity=0.4, fontsize=7].

> pause

- Bullet points work as usual
- and this list appears after the pause.

# Another slide
## With a subtitle

More content.

and build it:

mate slides.md

The PDF lands next to the source, as slides.pdf.

See the docs for the full Markdown syntax, front matter, templates, and the Python API. If you want to write the slides with the help of an LLM, docs/llm.md is (hopefully) all you need to give it.

Backends

The code is built to support different backends. Typst is the only one supported today; new backends will follow once the current one is fully functional and free of known bugs.

License

MIT. The bundled fonts keep their own licenses (SIL OFL 1.1, under fonts/).

Download files

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

Source Distribution

yerba-0.4.0.tar.gz (729.6 kB view details)

Uploaded Source

Built Distribution

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

yerba-0.4.0-py3-none-any.whl (744.4 kB view details)

Uploaded Python 3

File details

Details for the file yerba-0.4.0.tar.gz.

File metadata

  • Download URL: yerba-0.4.0.tar.gz
  • Upload date:
  • Size: 729.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yerba-0.4.0.tar.gz
Algorithm Hash digest
SHA256 66f616860696434c433008df07d2d9543f3cdc8e9be35d1392b7d879a2216c46
MD5 477228c2915eeb2fb4fd7b86e729826f
BLAKE2b-256 52092fb5365d2232570d0744010a0ab73611b0cdf3217073be05f39b29fddb1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for yerba-0.4.0.tar.gz:

Publisher: publish.yml on bersp/mate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yerba-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: yerba-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 744.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yerba-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ffce8376be485f9de2d7ccb6112b4417f48138fc035ad5ab59e9e99060f85094
MD5 82aa1cc625cc3a9983a56bfb6480eb1c
BLAKE2b-256 02f84526a28efff43efb7f809d20bbcaf494c1fab89283c70b32430b1d9a3da1

See more details on using hashes here.

Provenance

The following attestation bundles were made for yerba-0.4.0-py3-none-any.whl:

Publisher: publish.yml on bersp/mate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page