# Besos Loves Slides

There's an amazing story about Amazon.  One day Jeff Besos saw a PowerPoint presentation so heinous,
so evil, so boring, that he full on _banned_ PowerPoint presentations at Amazon. Immediately after
this presentation he emailed the entire company declaring all PowerPoint presentations dead.

Can you imagine being the guy who gave this fateful presentation? I personally would be proud. I'd
take that .ppt on the road and show everyone the power of _POWER POINT_! Who knew it has the ability to destroy the
will of even the wealthiest of individuals with its unmitigated and complete boredom.

This project is a celebration of that one PPT presentation. That .ppt that sent Jeff into a tailspin
of madness.  It seeks to bring Jeff Besos painful memories of that one fateful day when he crashed
out over some slides in a boardroom.

## Status

This is mostly a simple presentation tool for my videos in my courses.  I decided to take some of
the knowledge from my Game Development adventures and use those to make something better than
PowerPoint for my use cases.  I mostly need to show text and some videos for a short amount of time
on a randomly attached monitor while also looking at a status screen on another one.

Currently you can run `besos.exe` (it might work on other platforms, let me know) and give it a
`.md` file formatted to have slides.  See `samples/01-a-good-first-program.md` which is a quick
example from one of my courses.  I'll have more docs on this in the future but so far:

1. Metadata at the top is json.
2. Slides start with `===`.
3. Each slide is separated with `---`.
4. Each slide can also have json metadata. You can currently set the background color with `{"bg_color": [255, 0, 0, 255]}` but it's jank right now so put the `{` and `}` on different lines.
4. First line of slide is title.
5. Everything after is content.
6. No actual markdown is being done currently.

## Future Plans

1. Control window will show the current and next slide, speaker notes, and other information.
2. Buttons to control things.
3. Ability to trigger sounds.
4. Ability to style the presentation with metadata, so for different fonts and sizes.
5. Ability to pick different layouts and to create your own layouts right in the presentation.
