diff options
Diffstat (limited to 'plain.sh')
-rwxr-xr-x | plain.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/plain.sh b/plain.sh new file mode 100755 index 0000000..23eb200 --- /dev/null +++ b/plain.sh @@ -0,0 +1,42 @@ +#!/bin/sh +set -e + +# usage: ./plain.sh <input txt> <output html> + + +# i/o variables + +IN="$1" +OUT="$2" + +[ -f $IN ] || { echo "---- [FATAL] $IN not found ----" ; exit 1 ; } + + +# initial write + +cat plain-header > $2 +cat $1 >> $2 +printf "</pre>\n</body>\n</html>" >> $2 +echo '[ok] initial assembly' + +# hack to fix double <pre> when generating from nav.sh + +sed -e "/^<pre>$/ {n;/^<pre>$/d}" -e "/^<\/pre>$/ {n;/^<\/pre>$/d}" -i'' $2 + + +# metadata + +sedesc() { + sed -e 's;\&;\\\&;' -e 's/;/\\\;/' -e 's;-->;;' +} + +TITLE=$(grep -e '^<!--title: ' -m 1 $1 | cut -f 2- -d ' ' | sedesc) +sed -e "/^<!--title:/d" -e "s;<title>#;<title>${TITLE};1" -i'' $2 +printf '[ok] title: %s\n' "$TITLE" + +MDATE=$(stat -c '%y' $1 | sed -e 's/\.[0-9]* //' -e 's/\(..\)\(..\)$/\1:\2/') # ISO 8601 format: "yyyy-mm-dd hh:mm:ss±zz:zz" +sed "/^<\/head>/i <meta http-equiv=\"last-modified\" content=\"${MDATE}\" />" -i'' $2 +printf '[ok] date: %s\n' "$MDATE" + + +echo "---- build complete: $2 ----" |