vinayak-mehta / present

A terminal-based presentation tool with colors and effects.
https://present.readthedocs.io
Apache License 2.0
4.34k stars 165 forks source link

present

Documentation Status image image image Run on Repl.it

A terminal-based presentation tool with colors and effects.

You can also play a codio (pre-recorded code block) on a slide.

present is built on asciimatics, and it works with Python>=3.7.

Check out the gallery to see what everyone is making with present! You can add your slides by simply opening an issue.

Installation

You can simply use pip to install present:

$ pip install present

Usage

$ present sample.md

Some controls:

At the end, you can press r to restart the presentation.

Syntax

Slides follow Markdown syntax. You can check out the sample slides for reference.

Note: Some things aren't supported yet:

Separator

Each slide can be separated with a ---.

Slide 1

---

Slide 2

Headers

Level 1 headings become figlets, level 2 headings get underlined with -, and level 3 headings become bold.

# Heading 1

## Heading 2

### Heading 3

Text

This is normal text

This is **bold text**

This is `inline code`

This is a [link](www.google.com)

As Kanye West said:

> We're living the future so
> the present is our past.

Lists

Ordered lists become unordered lists automatically.

- Item 1
    - Item 1a
    - Item 1b
    - Item 1c
- Item 2
    - Item 2a

Images

Image paths are relative to the directory where your slides are kept, and where you invoke present.

![RC](images/recurse.png)

Note: You can use high resolution images and tweak the terminal font size to get the best results.

Code blocks

```
import os

os.getcwd()
```

Codios

Codios are pre-recorded playable code blocks which can be useful for live demos. You can find out how to write one in the codio section of the documentation.

![codio](codio.yml)

Style

Each slide can be styled with foreground / background colors and effects. By default, slides are black on white with no effects. You can add style to a slide by adding a comment at the beginning of the slide (after the slide separator):

Slide 1

---
<!-- fg=black bg=yellow -->

Slide 2

---
<!-- effect=explosions -->

Slide 3

Colors: black, red, green, yellow, blue, magenta, cyan, white.

Effects: fireworks, explosions, stars, matrix, plasma. More coming soon!

Contributing

The Contributor's Guide has detailed information about contributing issues, documentation, code, and tests.

Versioning

present uses Semantic Versioning. For the available versions, see the tags on the GitHub repository.

License

This project is licensed under the Apache License, see the LICENSE file for details.