From e94aa713d4ce61666b521b174b9981b957b48ec7 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Sun, 7 Aug 2022 00:49:11 -0500 Subject: "Real" initial commit --- ht.sh | 60 ------------------------------------------------------------ 1 file changed, 60 deletions(-) delete mode 100755 ht.sh (limited to 'ht.sh') diff --git a/ht.sh b/ht.sh deleted file mode 100755 index 7f20255..0000000 --- a/ht.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -# ht.sh -# *.ht -> *html - -# config -header_file=header.htm -footer_file=footer.htm -meta_file=meta.sh - -print() { - printf '%s\n' "$*" -} - -htt() { # htt FILE - # Like `cat`, but with templating. - : "${HT_TMPL_COUNT:=0}" - ht_end="ht_main_$(date +%s)_${HT_TMPL_COUNT}" # be extra double sure - eval "$( - print "cat <<$ht_end" - cat "$@" - print - print "$ht_end" - )" - HT_TMPL_COUNT=$((HT_TMPL_COUNT + 1)) -} - -htmeta_clear() { - # Generate metadata-clearing commands from $meta_file. - while read -r line; do - case "$line" in - *'()'*) # function - unset -f "${line%()*}" - ;; - *=*) # variable assignment - unset -v "${line%=*}" - ;; - *) # other -- XXX: Don't know what to do - ;; - esac - done <"$meta_file" 2>/dev/null -} - -htmeta() { # htmeta FILE - # Collect metadata from FILE. - # Metadata looks like this: `;;@` - sed -n 's/^;;@//p' "$1" 2>/dev/null | tee "$meta_file" -} - -main() { - # Make two passes over each input file, collecting metadata and content. - # Of course, this isn't safe, but you trust yourself, right? - for file; do - eval "$(htmeta_clear)" - eval "$(htmeta "$file")" - ./ht.awk <"$file" | htt "$header_file" - "$footer_file" - done -} - -test "$DEBUG" && set -x -test "$SOURCE" || main "$@" -- cgit 1.4.1-21-gabe81