This Deck is Just HTML and CSS

And I wrote it in Markdown*

(*with a teeny-tiny extension)


Michael Thornburgh

PowerPoint is awful

Markdown so hot right now (and easy)

Inspirations

Anti-Inspiration: Pandoc

Solution: Static Style-able HTML

Solution: CSS Stylesheet

Solution: Write it in Markdown

Example

<link rel="stylesheet" href="deck.css" />

:::::::::::::::::::::::::::::::

This Deck is Just HTML and CSS
==============================
And I wrote it in Markdown*

<small><small>(*with a teeny-tiny extension)</small></small>

:::::::::::::::::::::::::::::::

Solution: Static Style-able HTML
================================

* Deck is an `<article>`
* Each slide is a `<section>`
* First slide is the title slide
* First element of a `<section>` is the slide’s title
* Can include SVG, images, even videos
* Stylesheet turns it into a presentation

What about diagrams?

Pikchr Open-Source Picture Language

“Build” Pipeline the Unix Way™

$ awk -f mdsection.awk mdslides.md.in | pikchr | md2html --github > mdslides.html
mdsection.awk Preprocessor pikchr Preprocessor Any Markdown Formatter Slide Delims + Markdown + Pikchr HTML + Markdown + Pikchr HTML + Markdown + SVG HTML + SVG deck.css

Section Preprocessor

#! /usr/bin/env awk -f

/^:::+$/ {
    print lastSection ? "</section>" : "<article>"
    printf "<section id='page-%d'>\n", ++page
    lastSection = NR
}

(NR != lastSection)

END {
    if(lastSection)
        print "\n\n</section>\n</article>"
}

Pikchr Example

A Line A Box A Circle
``` pikchr x-current-color svg-only requote delimiters
# This is the actual source requoted by the pikchr tool.
dot
line 150% "A Line" above
box "A Box"
arrow 150% dashed
circle "A" "Circle"
arrow
arrow radius .05 right .1 then down then \
    left until even with first line then to first line
```

Blockquotes

“You can use a blockquote to show something that someone said. Blockquotes look like this.”

Michael Thornburgh, June 2025

Tables

Some Markdown processors (like MD4C md2html) support GitHub-style tables:

Column 1 Column 2
row 1 column 1 row 1 column 2
row 2 column 1 row 2 column 2
row 3 column 1 row 3 column 2
row 4 column 1 row 4 column 2

Links

made with vi