From 30e37785ed73d9b5e61093704e6db81b86cdd80c Mon Sep 17 00:00:00 2001 From: Trevor Vallender Date: Fri, 26 May 2023 11:20:55 +0100 Subject: [PATCH] First pass at site compiler Takes vimwiki notes and throws them into HTML. Still need to: - Fix links on output - Add header/footer - Password-protect private dir --- make_site.bash | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 make_site.bash diff --git a/make_site.bash b/make_site.bash new file mode 100755 index 0000000..024fb38 --- /dev/null +++ b/make_site.bash @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# Best practice options +set -o errexit +set -o nounset +set -o pipefail +if [[ "${TRACE-0}" == "1" ]]; then set -o xtrace; fi + +if [[ "${1-}" =~ ^-*h(elp)?$ ]]; then + echo 'Usage: +' + exit +fi + +INPUT_DIR=~/notes +OUTPUT_DIR=~/public_html + +pushd ~ + +traverse_dir() { + local dir=$1 + for d in $dir; do + OUTPUT=$OUTPUT_DIR${d##$INPUT_DIR} + if [ -d "$d" ]; then + mkdir -p $OUTPUT + traverse_dir "$d/*" + elif [[ $d == *.md ]]; then + OUTPUT=${OUTPUT%.md}.html + OUTPUT=${OUTPUT// /_} + echo $OUTPUT + pandoc -f markdown -t html -o $OUTPUT "$d" + fi + done +} + +traverse_dir $INPUT_DIR/\* + +popd