# customizable output dir DEST_DIR ?= dist # find all issues and determine required output files ISSUES != find . -path "./issues/*" -type d DEST_PDF_FILES := $(ISSUES:./issues/%=$(DEST_DIR)/issue-%.pdf) DEST_HTML_FILES := $(ISSUES:./issues/%=$(DEST_DIR)/issue-%.html) DEST_EPUB_FILES := $(ISSUES:./issues/%=$(DEST_DIR)/issue-%.epub) # deps PANDOC != command -v pandoc 2> /dev/null XELATEX != command -v xelatex 2> /dev/null # default target help: @echo "Targets:" @echo -e "\tall - build all formats" @echo -e "\tpdf - generate all issues as pdf" @echo -e "\thtml - generate all issues as html" @echo -e "\tepub - generate all issues as epub" @echo -e "\tclean - remove build artifacts" all: pdf html epub dep-pandoc pdf: $(DEST_PDF_FILES) dep-xelatex html: $(DEST_HTML_FILES) epub: $(DEST_EPUB_FILES) $(DEST_DIR)/issue-%.pdf: issues/% @echo "building $@" @$(PANDOC) \ --file-scope \ --from markdown \ --to latex \ --pdf-engine xelatex \ --table-of-contents \ --lua-filter increase-header-levels.lua \ --variable title:"tildeverse zine $@" \ --standalone \ --output $@ \ $" \ --variable include-after:"" \ --css https://tilde.team/css/hacker.css \ --output $@ \ $