blob: bbdb48bc1c05f74cea6e9c6341c2f6c682e63438 [file] [log] [blame]
#!/bin/sh
# This shell script takes our content from _adoc and runs it through
# asciidoctor and applies front matter that Jekyll will see. Its kind
# of annoying, since Jekyll on github-pages doesn't support asciidoctor
# properly.
# File names starting with and underscore are skipped, as they are considered
# as included content.
dofront()
{
read line
if [ "${line}" != "---" ]
then
return
fi
printf "%s\n" "---"
while read line
do
printf "%s\n" "${line}"
if [ "${line}" = "---" ]
then
break
fi
done
}
cd $(dirname $0)
if [ -n "$1" ]
then
files=$*
else
files=$(find . -name '*.adoc')
fi
for f in $files
do
input=${f#./}
indir=$(dirname $f)
indir=${indir#./}
output=../${input%.adoc}.html
outdir=../${indir}
aargs=
case "${input##*/}" in
_*) printf "Skipping %s\n" "$input"
continue
;;
esac
when=$(git log -n1 --format='%ad' '--date=format-local:%s' $f)
if [[ -z "${when}" ]]
then
when=$(date +%s)
fi
echo "Processing $input -> $output"
if [ -n "$indir" ] && [ ! -d "$outdir" ]
then
mkdir -p $outdir
fi
> $output
aargs=
case $input in
v[0-9]*)
vers=${input#v}
vers=${vers%%/*}
aargs="${aargs} -aversion-label=nanomsg -arevnumber=${vers} -dmanpage"
# for man pages, we supply our own front matter
printf "%s\n" "---" >> $output
printf "version: %s\n" "${vers}" >> $output
printf "layout: default\n" >> $output
printf "%s\n" "---" >> $output
;;
*)
dofront >> $output < $input
;;
esac
env SOURCE_DATE_EPOCH=${when} asciidoctor ${aargs} -b html5 -o - -a skip-front-matter $input >> $output
done