markdown-snippets := topbar.mdwn footer.mdwn
hypertext-snippets = $(markdown-snippets:%.mdwn=%.html)
markdown := $(filter-out $(markdown-snippets),$(wildcard *.mdwn */*.mdwn */*/*.mdwn))
hypertext = $(subst index/index,index,$(markdown:%.mdwn=%/index.html))
graph := $(wildcard *.dot */*.dot */*/*.dot)
vectorimage-graph := $(graph:%.dot=%.svg)

all: $(hypertext) $(vectorimage-graph) style.css

update: .git
	git pull
	$(MAKE) all

$(hypertext-snippets): %.html: %.mdwn Makefile
	pandoc -f markdown -t html -o $@ $<
	sed -i -e '1i <div class=\"$*\">' -e '$$ a </div>' $@

$(vectorimage-graph): %.svg: %.dot Makefile
	dot -Tsvg -o$@ $<

%.html %/index.html: %.mdwn $(hypertext-snippets) Makefile
	$(if $(filter-out ./,$(dir $@)),mkdir -p $(dir $@))
	pandoc -s -c /style.css -B topbar.html -A footer.html -f markdown -t html -o $@ $<

%.css : %.scss Makefile
	scss --compass --style compressed $< $@

clean:
	rm -f $(vectorimage-graph)
	find -type f -name '*.html' -delete
	find -type d -empty -delete
	rm -f style.css style.css.map
	rm -rf .sass-cache

MAKEFLAGS += --jobs
.NOTPARALLEL: source
.PHONY: all update clean