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)