A build tool to turn markdown into an html presentation and then publish to gh-pages
pip install markdown-to-presentation
Set up the following files:
# Theme variables for reveal.js
assets/_theme.scss
# application-specific scss
assets/_app.scss
# copied into build directory
assets/*.png
# contains slides
slides.md
Slides must be delimited by a blank line followed by ***
followed by a blank
line. When rendered as markdown ***
will be a horizontal rule. If you need
a horizontal rule in your slides, use ---
or ___
instead.
Here's an example slides.md:
# Title slide
## subtitle
***
## first slide
- bullet 1
- bullet 2
- bullet 3
If you need raw html in your slides, use a special rawhtml
code block:
```rawhtml
<div>this html will be <em>injected</em> directly</div>
```
A sample makefile which works well with this:
all: run-build
venv: requirements.txt
rm -rf venv
virtualenv venv -ppython3.6
venv/bin/pip install -rrequirements.txt
venv/bin/pre-commit install -f --install-hooks
.PHONY: run-build
run-build: venv
venv/bin/markdown-to-presentation run-build
.PHONY: push
push: venv
venv/bin/markdown-to-presentation push index.htm build
clean:
rm -rf .mtp venv build index.htm
Acquire a push token which has the
public_repo
permission.
Use travis encrypt
to
encrypt your push token as GH_TOKEN=...
. You'll need the yaml it spits out
to fill out your .travis.yml
.
Make a .travis.yml
which looks something like this:
install: pip install virtualenv
script: make
after_success: make push
branches:
except:
- gh-pages
env:
global:
# GH_TOKEN
- secure: ...
For your make push
target, invoke something like this:
.PHONY: push
push: venv
venv/bin/markdown-to-presentation push index.htm build
The markdown-to-presentation push
executable takes the following arguments:
$ markdown-to-presentation push --help
usage: markdown-to-presentation push [-h] [--master-branch MASTER_BRANCH]
[--pages-branch PAGES_BRANCH]
paths [paths ...]
positional arguments:
paths
optional arguments:
-h, --help show this help message and exit
--master-branch MASTER_BRANCH
--pages-branch PAGES_BRANCH