summaryrefslogtreecommitdiff
path: root/http/bin/mkws
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-06-09 16:11:06 +0100
committerJoe Carstairs <me@joeac.net>2026-06-09 16:11:06 +0100
commitb4f9be57d3afbe19970bb268ecb6723cd80e703e (patch)
tree9cc614a387e6811ac8bcd180e774f58f3878c194 /http/bin/mkws
parent3ecf19cb8aa3661cffbb1ce3e4380807612c446c (diff)
http: builds blogs from gemlogs
Diffstat (limited to 'http/bin/mkws')
-rwxr-xr-xhttp/bin/mkws44
1 files changed, 30 insertions, 14 deletions
diff --git a/http/bin/mkws b/http/bin/mkws
index d706905..9cd2bee 100755
--- a/http/bin/mkws
+++ b/http/bin/mkws
@@ -11,6 +11,8 @@ test $# -lt 1 && usage
export SRC="$(realpath src)"
export PUBLIC="$(realpath public)"
export SHARE="$(realpath share)"
+export LAYOUTS="$(realpath share/layouts)"
+export DEFAULT_LAYOUT="${LAYOUTS}/default.layout.upphtml"
export OUT="$(realpath out)"
if [ -d "${PUBLIC}" ]
@@ -28,22 +30,36 @@ then
exit 1
fi
-for t in "${SRC}"/*.upphtml
+for t in $(find -L "${SRC}/" -type f -and -name "*\.upp*" -and -not -name "*\.upp*\.*")
do
- echo "Making $(basename "${t%.upphtml}".html)"
- pp "${SHARE}"/l.upphtml "${t}" "$1" > \
- "${OUT}/$(basename "${t%.upphtml}".html)"
-done
+ basename="$(basename "$t")"
+ ext="${basename##*upp}"
-for t in "${SRC}"/**/*.uppcss
-do
- t_out="${t%.uppcss}".css
- t_out="${t_out#${SRC}/}"
- echo "Making ${t_out}"
- t_out="${OUT}/${t_out}"
- mkdir -p "$(dirname "${t_out}")"
- pp "${t}" "$1" > \
- "${t_out}"
+ basename_without_ext="${basename%\.upp${ext}}"
+ penultimate_segment="${basename_without_ext##*\.}"
+ if [ "$basename_without_ext" != "$penultimate_segment" ] && [ -f "${LAYOUTS}/${penultimate_segment}.layout.upphtml" ]
+ then
+ layout="${LAYOUTS}/${penultimate_segment}.layout.upphtml"
+ name="${basename%\.${penultimate_segment}\.upp${ext}}"
+ else
+ layout="${DEFAULT_LAYOUT}"
+ name="${basename%\.upp${ext}}"
+ fi
+
+ in_dir="$(dirname "$t")/"
+ rel_dir="${in_dir#${SRC}/}"
+ mkdir -p "${OUT}/${rel_dir}/"
+
+ args="$( [ -f "${t}.args" ] && cat "${t}.args" || echo "" )"
+ if [ "$ext" = "html" ]
+ then
+ pp "${layout}" "${t}" "$1" "$args" > \
+ "${OUT}/${rel_dir}/${name}.${ext}"
+ else
+ pp "${t}" "$1" "$args" > \
+ "${OUT}/${rel_dir}/${name}.${ext}"
+ fi
+ echo "Written ${OUT}/${rel_dir}${name}.${ext}"
done
echo "Making sitemap.xml"