#!/bin/bash # Path to directory where this script is # https://stackoverflow.com/a/246128/98600 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Render txt2tags into html file # Arguments: # 1. txt2tags source file, e.g. download/index.t2t # 2. html target file, e.g. download/index.html function render_t2t_html { t2t="$1" html="$2" tmp="$2.tmp" relroot="$( dirname $t2t | sed -E 's/^.\///' | sed -E 's/[^/]+/../g' )" # First render with txt2tags to handle pre/post processing txt2tags \ --target=html \ --no-headers \ --quiet \ --outfile="$tmp" \ --infile="$t2t" # Capture first 3 lines of t2t file: title, author, date # Documentation here: https://txt2tags.org/userguide/headerarea l1=$(head -n 1 "$t2t") l2=$(tail -n+2 "$t2t" | head -n 1) l3=$(tail -n+3 "$t2t" | head -n 1) title= author= date= if [ -n "$l1" ] ; then title="$l1" if [ -n "$l2" ] ; then author="$l2" ; fi if [ -n "$l3" ] ; then date="$l3" ; fi fi # Run txt2tag's HTML through Pandoc for cleanup pandoc \ --from=html \ --to=html5 \ --standalone \ --template="$DIR/template.html" \ --variable="rel-root:$relroot" \ --metadata="title:$title" \ --metadata="author:$author" \ --metadata="date:$date" \ "$tmp" \ --output="$html" rm -f "$tmp" # Final post-processing if [ -f "$html" ] ; then sed -i.bak "s/