diff options
author | Jonas Smedegaard <dr@jones.dk> | 2022-03-26 00:59:27 +0100 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2022-03-26 01:15:23 +0100 |
commit | ace3f2e9138ed31e961cf842b3d25f3a5d297789 (patch) | |
tree | 5ef8e9ec7203a298b6ad511954814248d3cf1fd6 /Makefile |
initial draft
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a101059 --- /dev/null +++ b/Makefile @@ -0,0 +1,40 @@ +markdown-snippets := topbar.md footer.md +hypertext-snippets = $(markdown-snippets:%.md=%.html) +markdown := $(filter-out $(markdown-snippets),$(wildcard *.md */*.md */*/*.md)) +hypertext = $(subst index/index,index,$(markdown:%.md=%/index.html)) +graph := $(wildcard *.dot */*.dot */*/*.dot) +vectorimage-graph := $(graph:%.dot=%.svg) + +sitetitle := $(shell head --lines=1 index.md | grep --perl-regexp --only-matching '^\#\s*\K(\S+(\s\S+)*)+') + +all: $(hypertext) $(vectorimage-graph) style.css + +update: .git + git pull + $(MAKE) all + +$(hypertext-snippets): %.html: %.md 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: %.md $(hypertext-snippets) Makefile + $(eval title = $(shell head --lines=1 $< | grep --perl-regexp --only-matching '^\#\s*\K(\S+(\s\S+)*)+')) + $(if $(filter-out ./,$(dir $@)),mkdir -p $(dir $@)) + pandoc -s $(if $(title),--metadata pagetitle='$(if $(filter-out $(sitetitle),$(title)),$(sitetitle) -- )$(title)') -c $(shell realpath --relative-to=$(dir $@) style.css) -B topbar.html -A footer.html -f markdown -t html -o $@ $< + +%.css : %.scss Makefile + sassc --load-path /usr/share/sass --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 |