#!/bin/sh set -eu while getopts 'N:o:r:w:L:' flag; do case "$flag" in N) PROJECT_UC="$OPTARG" ;; o) OUTDIR="$OPTARG" ;; r) IN_FILE="$OPTARG" ;; w) OUT_FILE="$OPTARG" ;; L) THE_LANG="$OPTARG" ;; *) exit 2 ;; esac done shift $((OPTIND - 1)) assert_arg() { if [ -z "$1" ]; then echo "Missing $2" >&2 exit 2 fi } assert_arg "${PROJECT_UC:-}" '-N PROJECT_UC' assert_arg "${OUTDIR:-}" '-o OUTDIR' assert_arg "${IN_FILE:-}" '-i IN_FILE' assert_arg "${THE_LANG:-}" '-L THE_LANG' if [ -z "${OUT_FILE:-}" ]; then OUT_FILE="${IN_FILE%.md}.html" fi OUT="$OUTDIR/$OUT_FILE" mkdir -p "$(dirname "$OUT")" pandoc \ --toc \ --highlight-style pygments \ --toc-depth=2 \ -s \ --metadata title="$PROJECT_UC - ${IN_FILE%%.*}" \ --metadata "lang=$THE_LANG" \ -r commonmark \ -w html \ -H aux/workflow/favicon.html \ < "$IN_FILE" > "$OUT"