MD := $(shell find content -name '*.md')
HTML := $(patsubst content/%.md,public/%.html,$(MD))
TPL := template.html
PANDOC := pandoc -f markdown+lists_without_preceding_blankline-implicit_figures \
--template=$(TPL) --toc --toc-depth=3 -s --wrap=preserve
all: site
public/%.html: content/%.md $(TPL)
@mkdir -p $(@D)
@sec=$$(echo "$*" | cut -d/ -f1); \
buf=$$(basename $$(dirname "$*")); \
dt=$$(sed -n 's/^date: *//p' "$<" | head -1 | tr -d '"'); \
fdt=$$(date -d "$$dt" +"%B %-d, %Y" 2>/dev/null || echo "$$dt"); \
au=$$(sed -n 's/^author: *//p' "$<" | head -1 | tr -d '"[]'); \
vid=$$(sed -n 's/^video: *//p' "$<" | head -1 | tr -d '"'); vid=$${vid##*v=}; vid=$${vid##*/embed/}; \
if [ "$$sec" = community ] && [ -n "$$au" ]; then ml="by $$au ยท $$fdt"; else ml="$$fdt"; fi; \
yt=""; [ -n "$$vid" ] && yt="-M ytid=$$vid"; \
$(PANDOC) -M section="$$sec" -M buffer="$$buf.org" -M showtitle=true -M metaline="$$ml" $$yt "$<" -o "$@"
site: $(HTML) gen assets
gen: $(TPL) gen.sh $(MD)
@bash gen.sh
assets:
@mkdir -p public && cp -R assets/. public/
serve: site
@cd public && python3 -m http.server 1313
clean:
rm -rf public
.PHONY: all site gen assets serve clean