Simple slide decks with Markdown and Python


Keywords
slideshow, markdown, idom
License
MIT
Install
pip install slidedown==0.7.0

Documentation

Slidedown

  • Do you ✍️ Slides?
  • Do you 😠 PowerPoint?
  • Do you ❤️ Markdown?

You're in Luck!

Turn markdown like this:

# Step 1

Create an awesome slide deck.

# Step 2

Present it to awesome people.

# Step 3

Profit?

Into slides like this:

How?

  1. Install slidedown with pip
pip install slidedown
  1. Start presenting your markdown files
slidedown README.md
  1. Open up your browser
http://localhost:5678/client/index.html

Interactive Elements

You can embed interactive views into your slides using IDOM, by adding an HTML element into your markup with an attribute of the form data-idom="your_script.py" where your_script.py should be placed in the same directory that slidedown was invoked and must contains a function Main() or main() that returns an IDOM element or a VDOM dict. All other data- attributes will be interpreted as parameters to pass to that function.

IDOM in Slidedown Example

The following markup:

# Hello IDOM!

<span data-idom="hello" data-greeting="hello" />

and a script hello.py containing:

import idom

@idom.component
def Main(greeting: str):
    hi_count, set_hi_count = idom.hooks.use_state(1)
    return idom.html.button(
        {"onClick": lambda event: set_hi_count(hi_count + 1)},
        f"IDOM said {greeting} {hi_count} time(s)",
    )

Should produce the following output:

Config File

Slidedown supports a slidedown.json config file that can be placed adjacent to your Markdown in order to configure the options used when running. The available options match those seen in the help message (slidedown --help) except with all usages of - replaced with _. For example:

{
  "host": "127.0.0.1",
  "no_browser": true,
  "no_reload": false,
  "port": 5678,
  "reload_delay": 3.0,
  "reload_ignore": ["ignore-dir/*"],
  "reload_watch": ["watch-dir/*"],
  "show_options": false,
  "start_slide": 0
}