her.esy.fun/Makefile

87 lines
1.8 KiB
Makefile
Raw Normal View History

2021-04-26 20:53:10 +00:00
# Generate my website out of org-mode/gemini files
#
# maybe check https://themattchan.com/blog/2017-02-28-make-site-generator.html
2021-04-27 12:34:29 +00:00
# From https://github.com/fcanas/bake/blob/master/Makefile
# Finally https://www.arsouyes.org/blog/2017/10_Static_website/
2021-04-26 20:53:10 +00:00
2021-04-27 12:34:29 +00:00
all: allatend
SRC_DIR ?= src
DST_DIR ?= _site
SRC_RAW_FILES := $(shell find $(SRC_DIR) -type f)
DST_RAW_FILES := $(patsubst $(SRC_DIR)/%,$(DST_DIR)/%,$(SRC_RAW_FILES))
ALL += $(DST_RAW_FILES)
2021-04-26 20:53:10 +00:00
2021-04-27 13:02:02 +00:00
# COPY EVERYTHING
2021-04-27 12:34:29 +00:00
$(DST_DIR)/% : $(SRC_DIR)/%
mkdir -p "$(dir $@)"
cp "$<" "$@"
2021-04-26 20:53:10 +00:00
2021-04-27 13:02:02 +00:00
# ORG -> HTML
2021-04-27 12:34:29 +00:00
EXT := .org
SRC_PANDOC_FILES ?= $(shell find $(SRC_DIR) -type f -name "*$(EXT)")
DST_PANDOC_FILES ?= $(subst $(EXT),.html, \
$(subst $(SRC_DIR),$(DST_DIR), \
$(SRC_PANDOC_FILES)))
2021-04-26 20:53:10 +00:00
2021-04-27 12:34:29 +00:00
ALL += $(DST_PANDOC_FILES)
2021-04-26 20:53:10 +00:00
2021-04-27 12:34:29 +00:00
TEMPLATE ?= templates/post.html
CSS = /css/y.css
PANDOC := pandoc \
-c $(CSS) \
--template=$(TEMPLATE) \
--from org \
--to html5 \
--standalone
$(DST_DIR)/%.html: $(SRC_DIR)/%.org $(TEMPLATE)
mkdir -p $(dir $@)
$(PANDOC) $< \
--output $@
2021-04-27 13:02:02 +00:00
# HTML INDEX
HTML_INDEX := $(DST_DIR)/index.html
$(HTML_INDEX): $(SRC_PANDOC_FILES)
mkdir -p $(DST_DIR)
engine/mk-index.sh
ALL += $(HTML_INDEX)
# ORG -> GEMINI
EXT := .org
SRC_GMI_FILES ?= $(shell find $(SRC_DIR) -type f -name "*$(EXT)")
DST_GMI_FILES ?= $(subst $(EXT),.gmi, \
$(subst $(SRC_DIR),$(DST_DIR), \
$(SRC_GMI_FILES)))
ALL += $(DST_GMI_FILES)
GMI := engine/org2gemini.sh
$(DST_DIR)/%.gmi: $(SRC_DIR)/%.org
mkdir -p $(dir $@)
$(GMI) "$<" "$@"
2021-04-27 13:06:55 +00:00
# OPTIM PHASE
OPTIM_DIR ?= _optim
$(OPTIM_DIR)/index.html: $(HTML_INDEX) $(SRC_RAW_FILES)
mkdir -p $(OPTIM_DIR)
engine/pre-deploy.sh
optim: $(OPTIM_DIR)/index.html
deploy: $(OPTIM_DIR)/index.html
engine/sync.sh
2021-04-27 12:34:29 +00:00
allatend: $(ALL)
2021-04-26 20:53:10 +00:00
clean:
2021-04-27 12:34:29 +00:00
rm -rf $(DST_DIR)/*