#!/bin/sh set -eu . aux/lib.sh usage() { cat <<-'EOF' Usage: aux/workflow/md2html.sh -N NAME_UC -T TITLE [-D TOC_DEPTH] < FILE.md aux/workflow/md2html.sh -h EOF } help() { cat <<-'EOF' Options: -N NAME_UC the uppercased name of the project -T TITLE the required title of the generated HTML document -D TOC_DEPTH the depth of the generated table of contents (default: 2) -h, --help show this message Read markdown text from STDIN and emit HTML to STDOUT. EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done TOC_DEPTH=2 while getopts 'N:T:D:h' flag; do case "$flag" in N) NAME_UC="$OPTARG" ;; T) TITLE="$OPTARG" ;; D) TOC_DEPTH="$OPTARG" ;; h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) eval "$(assert_arg "${NAME_UC:-}" '-T TITLE')" eval "$(assert_arg "${TITLE:-}" '-T TITLE')" THE_LANG='en' ALTERNATES=/dev/null pandoc \ -s \ --toc \ --toc-depth="$TOC_DEPTH" \ --highlight-style=pygments \ --metadata lang="$THE_LANG" \ --metadata title="$TITLE - $NAME_UC" \ -r commonmark \ -w html \ -H aux/workflow/head.html \ -H "$ALTERNATES"