diff options
Diffstat (limited to 'aux/workflow/commonmark.sh')
-rwxr-xr-x | aux/workflow/commonmark.sh | 66 |
1 files changed, 52 insertions, 14 deletions
diff --git a/aux/workflow/commonmark.sh b/aux/workflow/commonmark.sh index 7267145..b196867 100755 --- a/aux/workflow/commonmark.sh +++ b/aux/workflow/commonmark.sh @@ -1,19 +1,57 @@ #!/bin/sh set -eu -PROJECT_UC="$1" -F="$2" -OUTDIR="$3" -OUT="${4:-${F%.*}.html}" +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 - ${F%.*}" \ - --metadata lang=en \ - -r commonmark \ - -w html \ - -H aux/workflow/favicon.html \ - < "$F" > "$OUTDIR/$OUT" + --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" |