#!/bin/sh set -eu . tests/lib.sh usage() { cat <<-'EOF' Usage: sh aux/commonmark.sh -N NAME_UC -t TITLE -l LANG [-H HEADER] sh aux/commonmark.sh -h EOF } help() { cat <<-'EOF' Options: -N NAME_UC the UpperCase name of the project -t TITLE the title of the page -l LANG the language of this page -H HEADER extra header content to be included as a file -h, --help show this message Consume CommonMark data from STDIN and emit HTML5 to STDOUT, using NAME_UC, TITLE and LANG as metadata, and allowing extra HTML to be injected via HEADER. Examples: Generate `index.html` from `README.md`: $ sh aux/commonmark.sh -N MyProj -t Home -l en -H extra.html < README.md > index.html EOF } for flag in "$@"; do case "$flag" in (--) break ;; (--help) usage help exit ;; (*) ;; esac done while getopts 'N:t:l:H:h' flag; do case "$flag" in (N) NAME_UC="$OPTARG" ;; (t) TITLE="$OPTARG" ;; (l) THE_LANG="$OPTARG" ;; (H) HEADER="$OPTARG" ;; (h) usage help exit ;; (*) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) eval "$(assert_arg "${NAME_UC:-}" '-N NAME_UC')" eval "$(assert_arg "${TITLE:-}" '-t TITLE')" eval "$(assert_arg "${THE_LANG:-}" '-l THE_LANG')" THE_TITLE="$NAME_UC | $TITLE" pandoc \ --toc \ --toc-depth=2 \ -s \ --metadata title="$THE_TITLE" \ --metadata "lang=$THE_LANG" \ -r commonmark \ -w html \ -H aux/favicon.html \ ${HEADER:+-H} ${HEADER:-}