SRC_DIR = ./blogs OUT_DIR = out/ HTML_DIR = $(OUT_DIR)html GEMINI_DIR = $(OUT_DIR)gemini MAKE_GEMINI = build/markdown2gemini.py MAKE_HTML = build/page.py MAKE_RSS = build/rss.py MAKE_HTML_INDEX = build/index.py PAGES = $(shell find $(SRC_DIR) -wholename "$(BLOG_SRC_DIR)*.md") HTML_TARGETS = $(PAGES:$(SRC_DIR)/%.md=$(HTML_DIR)/%.html) HTML_RSS = $(HTML_DIR)/index.xml HTML_INDEX = $(HTML_DIR)/index.html GEMINI_TARGETS = $(PAGES:$(SRC_DIR)/%.md=$(GEMINI_DIR)/%.gmi) IMAGES = $(shell find $(SRC_DIR) -wholename "$(SRC_DIR)*.png" -o -wholename "$(SRC_DIR)*.jpg") PNG_TARGETS = $(IMAGES:$(SRC_DIR)/%.png=$(HTML_DIR)/%.png) JPG_TARGETS = $(IMAGES:$(SRC_DIR)/%.jpg=$(HTML_DIR)/%.jpg) IMAGE_TARGETS = $(PNG_TARGETS) $(JPG_TARGETS) _dummy := $(shell mkdir -p $(HTML_DIR) $(GEMINI_DIR)) $(HTML_DIR)/%.html: $(SRC_DIR)/%.md pipenv run python $(MAKE_HTML) $< $@ $(HTML_RSS): $(PAGES) pipenv run python $(MAKE_RSS) $(PAGES) > $@ $(HTML_INDEX): $(HTML_TARGETS) pipenv run python $(MAKE_HTML_INDEX) $(HTML_TARGETS) > $@ $(HTML_DIR)/%.png: $(SRC_DIR)/%.png mkdir -p $(shell dirname $@) cp $< $@ $(HTML_DIR)/%.jpg: $(SRC_DIR)/%.jpg mkdir -p $(shell dirname $@) cp $< $@ html: $(HTML_TARGETS) $(HTML_RSS) $(HTML_INDEX) $(IMAGE_TARGETS) gemini: all: html gemini clean: rm -r $(OUT_DIR)