aboutsummaryrefslogtreecommitdiff
path: root/src/doc/md2html.sh
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2022-11-27 18:46:01 -0300
committerEuAndreh <eu@euandre.org>2022-11-27 18:46:01 -0300
commit139d7dbc15f4467201c24af834a574f19a5926b4 (patch)
tree45d1ee54a755cfd3aa7f4585cd0aee82b257c992 /src/doc/md2html.sh
parent.envrc: Remove unused file (diff)
downloadserver-139d7dbc15f4467201c24af834a574f19a5926b4.tar.gz
server-139d7dbc15f4467201c24af834a574f19a5926b4.tar.xz
Build TODOs.html on "public" target
Diffstat (limited to 'src/doc/md2html.sh')
-rwxr-xr-xsrc/doc/md2html.sh73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/doc/md2html.sh b/src/doc/md2html.sh
new file mode 100755
index 0000000..12865da
--- /dev/null
+++ b/src/doc/md2html.sh
@@ -0,0 +1,73 @@
+#!/bin/sh
+set -eu
+
+
+usage() {
+ cat <<-'EOF'
+ Usage:
+ md2html.sh -T TITLE [-D TOC_DEPTH] < FILE.md
+ md2html.sh -h
+ EOF
+}
+
+help() {
+ cat <<-'EOF'
+
+ Options:
+ -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 'T:D:h' flag; do
+ case "$flag" in
+ T)
+ TITLE="$OPTARG"
+ ;;
+ D)
+ TOC_DEPTH="$OPTARG"
+ ;;
+ h)
+ usage
+ help
+ exit
+ ;;
+ *)
+ usage >&2
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+eval "$(assert-arg "${TITLE:-}" '-T TITLE')"
+
+pandoc \
+ -s \
+ --toc \
+ --toc-depth="$TOC_DEPTH" \
+ --metadata lang=en \
+ --metadata title="$TITLE" \
+ -H src/doc/head.html