#!/usr/bin/env zsh set -e usage() { cat >&2 < $#cur)) && { REPLY=${(j:/:)abs[i,-1]} return } done src=${(j:/:)cur[i,-1]/*/..} dst=${(j:/:)abs[i,-1]} REPLY=$src${dst:+/$dst} } genhtml() { local page=$1 local data [[ $# -eq 1 ]] && data=`< $page` || data=$2 data="${data//&/&}" data="${data///>}" for p (${(k)pages}) { [[ $p = index ]] && continue getrel $page $p data="${data//${p}/$p}" } print "<\!DOCTYPE html> $page (${pages[$page]})
$data

" } case $1 in (links) for w (${(oi)=${links[$2]}}) print $w ;; (backs) for w (${(oi)=${backs[$2]}}) print $w ;; (html) genhtml $2 ;; (htmls) for p (${(k)pages}) { local subdir=$p:h mkdir -p $2/$subdir genhtml $p > $2/$p.html } local all=() for p (${(Oi)${(k)pages}}) all=("$p (${pages[$p]})" $all) zmodload -F zsh/datetime b:strftime pages[ALL]=$(strftime "%F %T") genhtml ALL ${(j:\n:)all} > $2/ALL.html ;; (*) usage ;; esac