Engine bug fixes and cleanup
This commit is contained in:
parent
736b8e39b6
commit
2bffa4154b
4 changed files with 15 additions and 110 deletions
27
Makefile
27
Makefile
|
@ -1,6 +1,5 @@
|
||||||
# Generate my website out of org-mode/gemini files
|
# Generate my website out of org-mode/gemini files
|
||||||
|
|
||||||
|
|
||||||
all: site
|
all: site
|
||||||
SRC_DIR ?= src
|
SRC_DIR ?= src
|
||||||
DST_DIR ?= _site
|
DST_DIR ?= _site
|
||||||
|
@ -11,10 +10,20 @@ NO_DRAFT := -not -path '$(SRC_DIR)/drafts/*'
|
||||||
# we don't copy source files
|
# we don't copy source files
|
||||||
NO_SRC_FILE := ! -name '*.org'
|
NO_SRC_FILE := ! -name '*.org'
|
||||||
|
|
||||||
|
# Prevent path/nix bugs
|
||||||
|
ENV_VARS := ./engine/envvars.sh
|
||||||
|
NIX_FILES := ./shell.nix $(shell find nix -type f)
|
||||||
|
$(ENV_VARS): $(NIX_FILES)
|
||||||
|
$(info Build ${ENV_VARS})
|
||||||
|
@echo "export PATH=\"${PATH}\"" >> ./engine/envvars.sh
|
||||||
|
.PHONY: envvars
|
||||||
|
envvars: $(ENV_VARS)
|
||||||
|
ALL += envvars
|
||||||
|
|
||||||
# ASSETS
|
# ASSETS
|
||||||
SRC_RAW_FILES := $(shell find $(SRC_DIR) -type f $(NO_DRAFT) $(NO_SRC_FILE))
|
SRC_RAW_FILES := $(shell find $(SRC_DIR) -type f $(NO_DRAFT) $(NO_SRC_FILE))
|
||||||
DST_RAW_FILES := $(patsubst $(SRC_DIR)/%,$(DST_DIR)/%,$(SRC_RAW_FILES))
|
DST_RAW_FILES := $(patsubst $(SRC_DIR)/%,$(DST_DIR)/%,$(SRC_RAW_FILES))
|
||||||
$(DST_DIR)/%: $(SRC_DIR)/%
|
$(DST_DIR)/%: $(SRC_DIR)/% $(ENV_VARS)
|
||||||
@mkdir -p "$(dir $@)"
|
@mkdir -p "$(dir $@)"
|
||||||
cp "$<" "$@"
|
cp "$<" "$@"
|
||||||
.PHONY: assets
|
.PHONY: assets
|
||||||
|
@ -24,7 +33,7 @@ ALL += assets
|
||||||
# CSS
|
# CSS
|
||||||
SRC_CSS_FILES := $(shell find $(SRC_DIR) -type f -name '*.css')
|
SRC_CSS_FILES := $(shell find $(SRC_DIR) -type f -name '*.css')
|
||||||
DST_CSS_FILES := $(patsubst $(SRC_DIR)/%,$(DST_DIR)/%,$(SRC_RAW_FILES))
|
DST_CSS_FILES := $(patsubst $(SRC_DIR)/%,$(DST_DIR)/%,$(SRC_RAW_FILES))
|
||||||
$(DST_DIR)/%.css: $(SRC_DIR)/%.css
|
$(DST_DIR)/%.css: $(SRC_DIR)/%.css $(ENV_VARS)
|
||||||
@mkdir -p "$(dir $@)"
|
@mkdir -p "$(dir $@)"
|
||||||
minify "$<" > "$@"
|
minify "$<" > "$@"
|
||||||
css: $(DST_CSS_FILES)
|
css: $(DST_CSS_FILES)
|
||||||
|
@ -40,7 +49,7 @@ PANDOC_TEMPLATE ?= templates/post.html
|
||||||
PANDOC_LUA_FILTER ?= engine/links-to-html.lua
|
PANDOC_LUA_FILTER ?= engine/links-to-html.lua
|
||||||
MK_HTML := engine/mk-html.sh
|
MK_HTML := engine/mk-html.sh
|
||||||
PANDOC := $(MK_HTML) $(PANDOC_TEMPLATE) $(PANDOC_LUA_FILTER)
|
PANDOC := $(MK_HTML) $(PANDOC_TEMPLATE) $(PANDOC_LUA_FILTER)
|
||||||
$(DST_DIR)/%.html: $(SRC_DIR)/%.org $(PANDOC_TEMPLATE) $(PANDOC_LUA_FILTER) $(MK_HTML)
|
$(DST_DIR)/%.html: $(SRC_DIR)/%.org $(PANDOC_TEMPLATE) $(PANDOC_LUA_FILTER) $(MK_HTML) $(ENV_VARS)
|
||||||
@mkdir -p "$(dir $@)"
|
@mkdir -p "$(dir $@)"
|
||||||
$(PANDOC) "$<" "$@.tmp"
|
$(PANDOC) "$<" "$@.tmp"
|
||||||
minify --mime text/html "$@.tmp" > "$@"
|
minify --mime text/html "$@.tmp" > "$@"
|
||||||
|
@ -57,7 +66,7 @@ RSS_CACHE_DIR ?= $(CACHE_DIR)/rss
|
||||||
DST_XML_FILES ?= $(patsubst %.org,%.xml, \
|
DST_XML_FILES ?= $(patsubst %.org,%.xml, \
|
||||||
$(patsubst $(SRC_POSTS_DIR)/%,$(RSS_CACHE_DIR)/%, \
|
$(patsubst $(SRC_POSTS_DIR)/%,$(RSS_CACHE_DIR)/%, \
|
||||||
$(SRC_POSTS_FILES)))
|
$(SRC_POSTS_FILES)))
|
||||||
$(RSS_CACHE_DIR)/%.xml: $(DST_POSTS_DIR)/%.html
|
$(RSS_CACHE_DIR)/%.xml: $(DST_POSTS_DIR)/%.html $(ENV_VARS)
|
||||||
@mkdir -p "$(dir $@)"
|
@mkdir -p "$(dir $@)"
|
||||||
hxclean "$<" > "$@"
|
hxclean "$<" > "$@"
|
||||||
.PHONY: indexcache
|
.PHONY: indexcache
|
||||||
|
@ -75,19 +84,13 @@ $(INDEX_CACHE_DIR)/%.index: $(INDEX_CACHE_DIR)/%.xml $(MK_INDEX_ENTRY) $(ENV_VAR
|
||||||
HTML_INDEX := $(DST_DIR)/index.html
|
HTML_INDEX := $(DST_DIR)/index.html
|
||||||
MKINDEX := engine/mk-index.sh
|
MKINDEX := engine/mk-index.sh
|
||||||
INDEX_TEMPLATE ?= templates/index.html
|
INDEX_TEMPLATE ?= templates/index.html
|
||||||
$(HTML_INDEX): $(DST_INDEX_FILES) $(MKINDEX) $(INDEX_TEMPLATE)
|
$(HTML_INDEX): $(DST_INDEX_FILES) $(MKINDEX) $(INDEX_TEMPLATE) $(ENV_VARS)
|
||||||
@mkdir -p $(DST_DIR)
|
@mkdir -p $(DST_DIR)
|
||||||
$(MKINDEX)
|
$(MKINDEX)
|
||||||
.PHONY: index
|
.PHONY: index
|
||||||
index: $(HTML_INDEX)
|
index: $(HTML_INDEX)
|
||||||
ALL += index
|
ALL += index
|
||||||
|
|
||||||
ENV_VARS := ./engine/envvars.sh
|
|
||||||
NIX_FILES := ./shell.nix $(shell find nix -type f)
|
|
||||||
$(ENV_VARS): $(NIX_FILES)
|
|
||||||
@echo "export PATH=\"${PATH}\"" >> ./engine/envvars.sh
|
|
||||||
ALL += ./engine/envvars.sh
|
|
||||||
|
|
||||||
# RSS
|
# RSS
|
||||||
DST_RSS_FILES ?= $(patsubst %.xml,%.rss, $(DST_XML_FILES)) $(ENV_VARS)
|
DST_RSS_FILES ?= $(patsubst %.xml,%.rss, $(DST_XML_FILES)) $(ENV_VARS)
|
||||||
MK_RSS_ENTRY := ./engine/mk-rss-entry.sh
|
MK_RSS_ENTRY := ./engine/mk-rss-entry.sh
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
minify "$1" > "$2"
|
|
|
@ -1,69 +0,0 @@
|
||||||
#!/usr/bin/env zsh
|
|
||||||
|
|
||||||
cd "$(git rev-parse --show-toplevel)" || exit 1
|
|
||||||
webdir="_optim"
|
|
||||||
|
|
||||||
retrieve_classes_in_html () {
|
|
||||||
cat $webdir/**/*.html | \
|
|
||||||
perl -pe 's/class="?([a-zA-Z0-9_-]*)/\nCLASS: $1\n/g'
|
|
||||||
}
|
|
||||||
|
|
||||||
retrieve_classes_in_css () {
|
|
||||||
cat $webdir/**/*.css | \
|
|
||||||
perl -pe 's/ \.([a-zA-Z-_][a-zA-Z0-9-_]*)/\nCLASS:$1\n/g'
|
|
||||||
}
|
|
||||||
|
|
||||||
classes=( $( {retrieve_classes_in_html; retrieve_classes_in_css}| \
|
|
||||||
egrep "^CLASS: [^ ]*$" |\
|
|
||||||
sort -u | \
|
|
||||||
awk '$2 !~ /(gzwebfilesize|webfilesize|yyydate|example|src)/ {print length($2),$2}'|\
|
|
||||||
sort -rn | \
|
|
||||||
awk '{print $2}') )
|
|
||||||
|
|
||||||
chr() {
|
|
||||||
[ "$1" -lt 26 ] || return 1
|
|
||||||
printf "\\$(printf '%03o' $(( 97 + $1 )))"
|
|
||||||
}
|
|
||||||
|
|
||||||
shortName() {
|
|
||||||
if [ "$1" -gt 25 ]; then
|
|
||||||
print -- $(shortName $(( ( $1 / 26 ) - 1 )))$(shortName $(( $1 % 26 )))
|
|
||||||
else
|
|
||||||
chr $1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
i=0;
|
|
||||||
typeset -A assoc
|
|
||||||
for c in $classes; do
|
|
||||||
sn=$(shortName $i)
|
|
||||||
print -- "$c -> $sn"
|
|
||||||
assoc[$c]=$sn
|
|
||||||
((i++))
|
|
||||||
done
|
|
||||||
|
|
||||||
htmlreplacer=''
|
|
||||||
cssreplacer=''
|
|
||||||
for long in $classes; do
|
|
||||||
htmlreplacer=$htmlreplacer's#class=("?)'${long}'#class=$1'${assoc[$long]}'#g;'
|
|
||||||
cssreplacer=$cssreplacer's#\.'${long}'#.'${assoc[$long]}'#g;'
|
|
||||||
done
|
|
||||||
|
|
||||||
sizeof() {
|
|
||||||
stat --format="%s" "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
for fic in $webdir/**/*.{html,xml}(N); do
|
|
||||||
before=$(sizeof $fic)
|
|
||||||
print -n -- "$fic ($before"
|
|
||||||
perl -pi -e $htmlreplacer $fic
|
|
||||||
after=$(sizeof $fic)
|
|
||||||
print -- " => $after [$(( ((before - after) * 100) / before ))%])"
|
|
||||||
done
|
|
||||||
for fic in $webdir/**/*.css(N); do
|
|
||||||
before=$(sizeof $fic)
|
|
||||||
print -n -- "$fic ($before"
|
|
||||||
perl -pi -e $cssreplacer $fic
|
|
||||||
after=$(sizeof $fic)
|
|
||||||
print -- " => $after [$(( ((before - after) * 100) / before ))%])"
|
|
||||||
done
|
|
|
@ -1,26 +0,0 @@
|
||||||
#!/usr/bin/env zsh
|
|
||||||
|
|
||||||
cd "$(git rev-parse --show-toplevel)" || exit 1
|
|
||||||
webdir="_optim"
|
|
||||||
|
|
||||||
debug () {
|
|
||||||
print -- $* >/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
type -a filelist
|
|
||||||
setopt extendedglob
|
|
||||||
if (($#>0)); then
|
|
||||||
filelist=( $* )
|
|
||||||
else
|
|
||||||
filelist=( $webdir/**/*.html(.) )
|
|
||||||
fi
|
|
||||||
|
|
||||||
tmp=$(mktemp)
|
|
||||||
|
|
||||||
for fic in $filelist; do
|
|
||||||
print -n -- "$fic "
|
|
||||||
cp $fic $tmp
|
|
||||||
perl -pi -e 's#<div id="outline-container-[^"]*"([^>]*)>#<div$1>#g;s# id="org[a-f0-9]{7}"##g;s# class="src src-# class="src-#g;s#<label class="org-src-name">#<label>#g;s#<div class="org-src-container">#<div>#g' $tmp
|
|
||||||
minify --mime text/html $tmp > $fic
|
|
||||||
print "[OK]"
|
|
||||||
done
|
|
Loading…
Reference in a new issue