Skip to main content

moffee logo

moffee

Make Markdown Ready to Present.

GitHub Actions PyPI version License Doc build status GitHub stars

moffee is an open-source slide maker that transforms markdown documents into clean, professional slide decks.

  • moffee handles layout, pagination, and styling, so you can focus on your content.
  • There's little to learn. moffee uses simple syntax to arrange and style content to your liking.
  • A live web interface updates slides as you type, allowing you to start a slideshow or export it to PDF.

An Example

Click to expand input markdown document (29 lines)
# moffee
## Make markdown ready to present
@(layout=centered)

## Why moffee?

- **80/20 Rule**[^1]: Creating slides can be time-consuming, often requiring 80% of the effort for just 20% of the outcome.
- `moffee` transforms markdown into professional presentations effortlessly.
    - Use simple markdown syntax.
    - Enjoy out-of-the-box paging and styling.
    - Easily arrange text and images.

[^1]: https://en.wikipedia.org/wiki/Pareto_principle

## Showcasing
### Style with Markdown

==Markdown== is all you need! Elements like $tex$ and `code` are rendered with elegant style.

!!! note
    moffee automatically breaks pages and chooses titles based on context.

### Media Layout

One of moffee's strengths is using dividers to organize text and images effectively.

===

- Use `---` to trigger page breaks.
- Use `<->` to arrange elements horizontally.
- Use `===` to split elements vertically.

moffee automatically adjusts element sizes to accommodate large blocks of text or complex illustrations.

<->

![blue coffee](coffee.png)

moffee example PDF

Or you can use other built-in themes:

default beam robo
default theme beam theme robo theme
blue gaia
blue theme gaia theme

Installation

moffee is written in Python and is recommended to install with pipx. See our documentation for step-by-step instructions.

pipx install moffee
# or `pip install moffee`

Preview slides in a live web server or export to HTML:

moffee live example.md # launch a server
# or
moffee make example.md -o output_html/ # export to HTML

Usage

To start, write in standard markdown. moffee supports most extended syntax found in Obsidian Flavored Markdown. See the syntax documentation for more details.

# Markdown Title
Use **bold** and *italic* for emphasis.

- Extended syntax like ~~strikethroughs~~ is supported.

To create a new slide, begin a new heading:

## Page 1
Some text

## Page 2
This sentence will appear on the second slide.

Alternatively, use --- to manually trigger a new slide:

## Page 1
Text on the first slide
---
Text on the next slide.

You'll notice the second slide shares the Page 1 title. moffee selects the most suitable title for each slide.

In addition to ---, moffee supports <-> and === for in-slide layout. Use <-> to separate elements horizontally:

Text on the left.
<->
![Image on the right](https://placehold.co/600x400)

=== places elements vertically and takes precedence over <->. Use them together for flexible layouts:

Top bun
===
Patty on the left
<->
Lettuce on the right
===
Bottom bun

Options and Styles

Front matter is used to define moffee's behavior. Here are some common used options. Refer to Configuration for the full list.

---
theme: default # Other availble themes are "beam", "robo", "blue" and "gaia"
layout: content # HTML template. Use "centered" for centered alignment.
resource_dir: "." # Relative URLs are based on this directory.
aspect_ratio: "16:9" # Aspect ratio of the slides
---

Any CSS property can be set in the front matter. For example, set a dark gray background for all slides:

---
layout: content
background-color: darkgray
color: white
---

moffee also supports local style decorators with the syntax @(property=value). Use these within the document to set attributes for specific slides:

# A refined landing page
Our journey begins here
@(layout=content, background-image='url("https://placehold.co/600x400")')

Contributing

Find moffee helpful? star are the best motivation to keep me improving. So thank you! ;)

To submit bug/feature requests/PR, please see CONTRIBUTING.md.

License

MIT License © 2024 Wenbo Pan

Metadata

Release files for moffee 0.2.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for moffee 0.2.7
File Size Uploaded Provenance Actions
moffee-0.2.7.tar.gz 29.5 kB Without provenance Details for moffee-0.2.7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for moffee 0.2.7
File Interpreter ABI Platform Actions
moffee-0.2.7-py3-none-any.whl Python 3 none any Details for moffee-0.2.7-py3-none-any.whl

Total release size: 64.7 kB

Release files / moffee-0.2.7.tar.gz

Download URL moffee-0.2.7.tar.gz
Size 29.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1a1903238dd8c7b48c75c59f539f181b36a919a6a49cdbdda7d0913adca7a9ab
BLAKE2b-256 checksum
How to use checksums
c480f73ecbafff252c1defca0dfc192ce4430906f52fe0343acead686004fb17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.12.7 Darwin/24.0.0

Release files / moffee-0.2.7-py3-none-any.whl

Download URL moffee-0.2.7-py3-none-any.whl
Size 35.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de9f786654948398361f492d9bf011739fed0c951dd869e05643520d1b054b41
BLAKE2b-256 checksum
How to use checksums
b6a78d038eb4c86bda5a2f5bb054be49e7a3833f1644d127f40a36c1dc9d81ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.12.7 Darwin/24.0.0

Security for moffee 0.2.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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