#!/bin/bash set -euo pipefail if [ "$(pwd)" != "$HOME/src/zisp" ] then echo >&2 "Call this from within the Zisp source root." exit 1 fi md2ext=fenced-code-blocks,highlightjs-lang,tables md2ht() { src=$1 dst=$2 if ! [ -f "$src" ] then echo >&2 "File not found: $src" continue fi echo "$src -> $dst" title=$(sed 's/# //; s/&/\\&/; s_/_\\/_; q' "$src") if [ "$src" = html/index.md ] # It's the root then nav='' elif [ "${src##*/}" = index.md ] then nav='^ Up' else nav='^ Up' fi ext=$md2ext if grep -q -- '' "$src" then ext=$ext,toc fi { sed "s/__TITLE__/$title/" html/prelude.html echo "" if [ "$nav" ] then sed "1 a $nav" < "$src" | markdown2 -x "$ext" fi echo "" echo "" } > "$dst" } md2ht html/index.md html/zisp/index.html cp html/style.css html/zisp/ shopt -s globstar for file in notes/*.md doc/**/*.md do dest=html/zisp/${file%.md}.html mkdir -p "${dest%/*}" md2ht "$file" "$dest" done for file in doc/**/*.txt do dest=html/zisp/$file mkdir -p "${dest%/*}" cp "$file" "$dest" done rsync -a html/zisp tk:/var/www/html