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)