aboutsummaryrefslogtreecommitdiff
path: root/aux/workflow/commonmark.sh
diff options
context:
space:
mode:
Diffstat (limited to 'aux/workflow/commonmark.sh')
-rwxr-xr-xaux/workflow/commonmark.sh66
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"