build: $(patsubst src/%.md, out/%.html, $(shell find src -type f)) \
$(patsubst static/%, out/%, $(shell find static -type f)) \
$(patsubst src/%, out/%, $(shell find src -type f ! -name "*.md"))
serve:
xdg-open http://localhost:8000/
python3 -m http.server -b localhost -d out/
watch:
find . -type f ! -path "./out/*" | entr make build
out/%.html: src/%.md template.html template.pl
@mkdir -p $(dir $@)
./template.pl $< > $@
out/%: static/%
@mkdir -p $(dir $@)
cp $< $@
compress: build # for gzip-static, check the openbsd httpd.conf(5) man page
# grep -Il skips binary files
find out/ -type f -exec grep -Il . {} \; \
-exec gzip -k {} \;
publish: compress build
rsync -rcvP --delete out/ \
lemurianmage@slimegirl.nexus:/var/www/htdocs/slimegirl.nexus
clean:
rm -r out/
.PHONY: build serve watch compress publish clean