Skip to content

Instantly share code, notes, and snippets.

@luxzeitlos
Created October 19, 2019 10:07
Show Gist options
  • Save luxzeitlos/435bfddc5ec102ee765e907d3f6edcbe to your computer and use it in GitHub Desktop.
Save luxzeitlos/435bfddc5ec102ee765e907d3f6edcbe to your computer and use it in GitHub Desktop.
# Suggestion of a new input structure for empress (slides)
I'm proposing to use `yaml` files instead of markdown files as primary structure for writing slides.
## Reasoning for empress-slides
When writing slides usually many slides are written at once. Also slides are by definition a special kind of presentation, so the way how it is presented is crucial. So presentation decisions have to be made at authoring time.
For example I may split content on two slides, or do a side-by-side comparsion. While I can do basically everything with `html` inside markdown this should never be necessary for the author.
A yaml file can contain structured information, is very easy to read and multiline markdown is easy to embed. Also a single yaml file can contain multiple documents, which allos to write multiple slides in one file:
```
type: title
title: Why we need yaml
---
type: markdown
title: Foo
content: |
There are *multiple* reasons:
- a first reason
- a second reason
- a third reason
```
This structure makes it far easier to author large slidesets that contain of multiple parts. For example a tutor may decide to create one file per lecture, each containing slides for ~90 minutes of talk. Reordering the lectures then becomes easy. Also many single-line files are avoided.
This also allows to have multiple slide structures the same way as tools like powerpoint or keynote. So having a side-by-side comparsion, where multiple things must be aligned right:
```
type: side-by-side
content:
-
left: |
# Wolf
The wolf is a wild animal in european woods
right: |
# Dog
The dog is domesticated and used for hunting
-
left: |
# Lion
The lion is a wild animal and may eat you
right: |
# Cat
Soo awww
```
This is still no decision about layout, but content structure. How it is presented, will there be borders, colors, etc is decided by the template.
## Reasoning about empress-blog
This may not be as necessary as for slides because in the time one blog post is written an entire slideset is written. However it could be nice to embed things like a image gallery:
```
type: multistep
content:
-
type: markdown
content: |
# My trip to emberfest
It was awesome
-
type: gallery
images: img/emberfest/*.jpg
-
type: markdown
content: |
Thank you all for this amazing time.
```
# Considering multi-target-documents
Which LaTeX often one input document is used to create multiple outputs. For example a professor may use the same LaTeX document to create both slides and a script. The script then usually contains much more information.
Using a powerfull language like yaml could in the future allow similar things:
```
type: markdown
inSlides: true
content: |
Ember is a awesome framework.
We love it because of multiple reasons.
---
type: markdown
inSlides: false
content: |
Ember is far better then anything else because ......
---
type: markdown
inSlides: true
content: |
# The beginning of ember
A long time ago, a cat....
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment