38 lines
1.2 KiB
Makefile
38 lines
1.2 KiB
Makefile
SHELL = /bin/sh
|
|
.SUFFIXES:
|
|
|
|
# All notes referenced with internal links, starting from `index.md`.
|
|
NOTES = $(shell pandoc lua pandoc/collect_notes.lua index.md)
|
|
# All pages referenced with internal links, starting from `index.md`.
|
|
PAGES := $(patsubst %.md,public_html/%.html,$(NOTES))
|
|
# All parts referenced with internal links in `$(1)`, plus the sitemap.
|
|
PARTS = $(patsubst %.md,public_html/%.html.part,$(shell pandoc lua pandoc/collect_links.lua $(1))) public_html/sitemap.html.part
|
|
|
|
PANDOCFLAGS = --data-dir pandoc
|
|
|
|
.PHONY: all
|
|
all: $(PAGES)
|
|
|
|
.SECONDEXPANSION:
|
|
public_html/%.html: flags = $(patsubst %,-M parts=%,$(filter-out $<,$^))
|
|
public_html/%.html: %.md $$(call PARTS,%.md)
|
|
@echo $^
|
|
pandoc $(PANDOCFLAGS) -d bavbavhaus.net.yaml -M slug=$* $(flags) -o $@ $<
|
|
|
|
.SECONDARY:
|
|
public_html/%.html.part: %.md
|
|
pandoc $(PANDOCFLAGS) -d bavbavhaus.net.part.yaml --id-prefix $* -M url=$*.html -M slug=$* -o $@ $<
|
|
|
|
public_html/sitemap.html.part: $(NOTES)
|
|
pandoc lua pandoc/sitemap.lua index.md $@
|
|
|
|
dest/%.docx: %.md
|
|
test -d dest || mkdir dest
|
|
pandoc --data-dir pandoc --resource-path pandoc -d docx.yaml -o $@ $<
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
$(RM) public_html/*.html.part
|
|
$(RM) public_html/*.html
|
|
$(RM) -r dest
|