great slides with reveal markdown view markdown
This post and the associated code contain some enhancements for reveal-md, an awesome library for creating presentations with markdown.
This has several big benefits:
- Quickly making slides, especially with many equations
- Having a 2D layout that helps keep slides organized
- You can easily embed webpages / interactive animations
demo
You can see a demo of one of my reveal-md presentations for teaching machine learning, created completely from markdown (with external images).
enhancements
To make things even faster, I use this preproc.js
file to automatically create new slides with two hashtags (##) and new columns of slides with a single hashtag (#). To use, run with reveal-md --preprocessor preproc.js slides.md
module.exports = (markdown, options) => {
return new Promise((resolve, reject) => {
return resolve(
markdown
.split('\n')
.map((line, index) => {
if (/### /.test(line))
return line
else if (/## /.test(line))
return '\n--\n' + line;
else if (/# /.test(line))
return '\n---\n' + line;
else
return line
})
.join('\n')
);
});
};
The slides.md
file shows a number of non-obvious ways to improve reveal-md. Some examples are:
- inserting blank headers using
## <div> </div>
- inserting iframes using inline html
<div class="divmomentum"> <iframe class="iframemomentum" src="https://distill.pub/2017/momentum/" scrolling="no" frameborder="no"></iframe> </div> <style> .divmomentum { position: relative; width: block; height: 600px; overflow: hidden; } .iframemomentum { position: absolute; top: -165px; left: -25px; width: 1424px; height: 768px; } </style>
- styling the presentation using css inline reveal-md file:
<style>
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
text-transform: lowercase;
}
.reveal section img {
background:none;
border:none;
box-shadow:none;
filter: invert(1);
}
iframe {
filter: invert(1);
}
body {
background: #000;
background-color: #000;
}
</style>