aboutsummaryrefslogtreecommitdiff
path: root/doc/md2html.sh
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2023-03-27 08:58:40 -0300
committerEuAndreh <eu@euandre.org>2023-03-27 08:58:40 -0300
commit07ef3c2a2cce2f055a1174a8f49c4895dc9f6b30 (patch)
tree7ef129bd27807abcd750bd6a8455e8adf02d8657 /doc/md2html.sh
parentreconfigure.sh: Fix permissions of rsynced files (diff)
downloadtoph-07ef3c2a2cce2f055a1174a8f49c4895dc9f6b30.tar.gz
toph-07ef3c2a2cce2f055a1174a8f49c4895dc9f6b30.tar.xz
Add minimum support for generating actual HTML files in public/
Notes
See CI logs with: git notes --ref=refs/notes/ci-logs show 07ef3c2a2cce2f055a1174a8f49c4895dc9f6b30 git notes --ref=refs/notes/ci-data show 07ef3c2a2cce2f055a1174a8f49c4895dc9f6b30 Exit status: 1 Duration: 12
Diffstat (limited to 'doc/md2html.sh')
-rwxr-xr-xdoc/md2html.sh97
1 files changed, 97 insertions, 0 deletions
diff --git a/doc/md2html.sh b/doc/md2html.sh
new file mode 100755
index 0000000..b6d04a8
--- /dev/null
+++ b/doc/md2html.sh
@@ -0,0 +1,97 @@
+#!/bin/sh
+set -eu
+
+. src/development/lib.sh
+
+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.
+
+
+ Examples:
+
+ Generate the HTML from markdown using the default:
+
+ $ md2html.sh -T 'Homepage' < index.md > index.html
+
+
+ Pick a different TOC depth:
+
+ $ md2html.sh -D3 -T 'TODOs' < TODOs.md > TODOs.html
+ 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')"
+
+
+HEAD="$(mkstemp)"
+trap 'rm -f "$HEAD"' EXIT
+
+cat <<-'EOF'
+ <link rel="icon" href="favicon.svg" type="image/svg+xml" />
+ <link rel="stylesheet" href="style.css" type="text/css" />
+EOF
+
+pandoc \
+ -s \
+ --toc \
+ --toc-depth="$TOC_DEPTH" \
+ --metadata lang=pt \
+ --metadata title="$TITLE" \
+ -H "$HEAD"