tonybtw

https://git.tonybtw.com/tonybtw.git git://git.tonybtw.com/tonybtw.git
1,195 bytes raw
1
MD   := $(shell find content -name '*.md')
2
HTML := $(patsubst content/%.md,public/%.html,$(MD))
3
TPL  := template.html
4
PANDOC := pandoc -f markdown+lists_without_preceding_blankline-implicit_figures \
5
  --template=$(TPL) --toc --toc-depth=3 -s --wrap=preserve
6
7
all: site
8
9
public/%.html: content/%.md $(TPL)
10
	@mkdir -p $(@D)
11
	@sec=$$(echo "$*" | cut -d/ -f1); \
12
	 buf=$$(basename $$(dirname "$*")); \
13
	 dt=$$(sed -n 's/^date: *//p' "$<" | head -1 | tr -d '"'); \
14
	 fdt=$$(date -d "$$dt" +"%B %-d, %Y" 2>/dev/null || echo "$$dt"); \
15
	 au=$$(sed -n 's/^author: *//p' "$<" | head -1 | tr -d '"[]'); \
16
	 vid=$$(sed -n 's/^video: *//p' "$<" | head -1 | tr -d '"'); vid=$${vid##*v=}; vid=$${vid##*/embed/}; \
17
	 if [ "$$sec" = community ] && [ -n "$$au" ]; then ml="by $$au ยท $$fdt"; else ml="$$fdt"; fi; \
18
	 yt=""; [ -n "$$vid" ] && yt="-M ytid=$$vid"; \
19
	 $(PANDOC) -M section="$$sec" -M buffer="$$buf.org" -M showtitle=true -M metaline="$$ml" $$yt "$<" -o "$@"
20
21
site: $(HTML) gen assets
22
23
gen: $(TPL) gen.sh $(MD)
24
	@bash gen.sh
25
26
assets:
27
	@mkdir -p public && cp -R assets/. public/
28
29
serve: site
30
	@cd public && python3 -m http.server 1313
31
32
clean:
33
	rm -rf public
34
35
.PHONY: all site gen assets serve clean