51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
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)
 |