#!/usr/bin/make -f THEME=gyr THEME_OPT=-t $(THEME) REVEALJS_THEMES=node_modules/reveal.js/css/theme REVEALJS_DIR=node_modules/reveal.js BUILD_DIR=build SLIDES_DIR=slides SLIDES_MD=$(wildcard $(SLIDES_DIR)/**/*.md) SLIDES_PDF=$(patsubst $(SLIDES_DIR)/%,$(BUILD_DIR)/%,$(patsubst %.md,%.pdf,$(SLIDES_MD))) SLIDES_HTML=$(patsubst $(SLIDES_DIR)/%,$(BUILD_DIR)/%,$(patsubst %.md,%.html,$(SLIDES_MD))) NAME=$(shell basename "$$(pwd)") REVEALMD=node_modules/.bin/reveal-md all: live configure: configure-assets configure-reveal configure-style configure-assets: $(MAKE) -C assets build configure-reveal: npm install reveal-md # -v 0.0.19 npm install node-sass configure-style: cp -a themes/$(THEME).scss $(REVEALJS_THEMES)/source cd $(REVEALJS_DIR) && ../.bin/node-sass \ css/theme/source/$(THEME).scss \ css/theme/$(THEME).css \ zip: rm -f "../$(NAME)-latest.zip" (git ls-files ; find assets) |grep -v '^ext' | zip -r "../$(NAME)-latest.zip" -@ live: $(REVEALMD) --disable-auto-open --host 0.0.0.0 $(THEME_OPT) $(SLIDES_DIR) .PHONY: build-pdf build-html build-pdf: $(SLIDES_PDF) build-html: $(SLIDES_HTML) $(BUILD_DIR)/%.pdf: $(SLIDES_DIR)/%.md mkdir -p "$$(dirname "$@")" docker run --rm --net=host -v "`pwd`:/slides" astefanutti/decktape http://localhost:1948/$(<:slides/%=%) --pause 500 /slides/$@ touch -a -r "$<" "$@" $(BUILD_DIR)/%.html: $(SLIDES_DIR)/%.md mkdir -p "$$(dirname "$@")" test -d "$$(dirname "$<")/images" \ && rsync -a "$$(dirname "$<")/images/" "$$(dirname "$@")/images/" \ || true pandoc -f markdown+emoji -t html -o "$@" "$<" touch -a -r "$<" "$@" clean: clean-pdf clean-html clean-pdf: rm -f $(BUILD_DIR)/**/*.pdf clean-html: rm -f $(BUILD_DIR)/**/*.html tasklist: watch "find slides/ -type f -name '*.md' |egrep -v '(template-|\.DONE\.md)' |sort"