forked from GitHub/gf-core
41 lines
1.2 KiB
Bash
Executable File
41 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
### This script finds all .t2t (txt2tags) files and updates the corresponding
|
|
### .html file, if it is out-of-date.
|
|
|
|
config=".txt2tagsrc"
|
|
pre="_pre.html"
|
|
post="_post.html"
|
|
tmp="tmp.html"
|
|
|
|
find . -name '*.t2t' | while read t2t ; do
|
|
html="${t2t%.t2t}.html"
|
|
if [ "$t2t" -nt "$html" ] ; then
|
|
txt2tags --config-file="$config" --target=html "$t2t"
|
|
cat $pre $html $post > $tmp
|
|
mv $tmp $html
|
|
head1=$(head -n 1 "$t2t")
|
|
head2=$(tail -n+2 "$t2t" | head -n 1)
|
|
head3=$(tail -n+3 "$t2t" | head -n 1)
|
|
|
|
# Replace "headers" from t2t in final HTML
|
|
# Documentation here: https://txt2tags.org/userguide/headerarea
|
|
if [ -n "$head1" ] ; then
|
|
sed -i.bak "s/{{HEAD1}}/$head1/" "$html" && rm "$html.bak"
|
|
else
|
|
sed -i.bak -E "s/<.+{{HEAD1}}.+>//" "$html" && rm "$html.bak"
|
|
continue # empty headers
|
|
fi
|
|
if [ -n "$head2" ] ; then
|
|
sed -i.bak "s/{{HEAD2}}/$head2/" "$html" && rm "$html.bak"
|
|
else
|
|
sed -i.bak -E "s/<.+{{HEAD2}}.+>//" "$html" && rm "$html.bak"
|
|
fi
|
|
if [ -n "$head3" ] ; then
|
|
sed -i.bak "s/{{HEAD3}}/$head3/" "$html" && rm "$html.bak"
|
|
else
|
|
sed -i.bak -E "s/<.+{{HEAD3}}.+>//" "$html" && rm "$html.bak"
|
|
fi
|
|
fi
|
|
done
|