From: Sergey Matveev Date: Sun, 13 Mar 2022 13:49:24 +0000 (+0300) Subject: Separate Index-es for each category/subdirectory X-Git-Url: http://www.git.stargrave.org/?p=zk.zsh.git;a=commitdiff_plain;h=98361a1b02dbef11f4d938ef65b7f5b008477b14 Separate Index-es for each category/subdirectory --- diff --git a/zk.zsh b/zk.zsh index 81e0321..348a5b5 100755 --- a/zk.zsh +++ b/zk.zsh @@ -25,6 +25,8 @@ for p (**(.)) { zstat -A reply -F "%F %T" +mtime $p pages[$p]=${reply[1]} } +typeset -a cats +for p (**(/)) cats=($p $cats) # Determine the links between them typeset -A links @@ -71,7 +73,7 @@ getrel() { REPLY=$src${dst:+/$dst} } -genhtml() { +genHTML() { local page=$1 local data p [[ $# -eq 1 ]] && data=`< $page` || data=$2 @@ -86,29 +88,59 @@ genhtml() { print "<\!DOCTYPE html> $page (${pages[$page]})
 $data
-

" + if [[ $cats ]]; then + entries=($entries "------------------------ >8 ------------------------") + for p (${(oi)cats}) entries=($entries "[$p/Index]") + fi + genHTML ${1}Index ${(F)entries} } case $1 in (links) for w (${(oi)=${links[$2]}}) print $w ;; (backs) for w (${(oi)=${backs[$2]}}) print $w ;; -(html) genhtml $2 ;; +(html) genHTML $2 ;; +(html-index) genIndex $2 ;; (htmls) for p (${(k)pages}) { - local subdir=$p:h - mkdir -p $2/$subdir - genhtml $p > $2/$p.html + mkdir -p $2/$p:h + genHTML $p > $2/$p.html + touch -r $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 + for p ($cats) pages[${p}/Index]=$now + pages[Index]=$now + for p ($cats) genIndex $p/ > $2/$p/Index.html + genIndex "" > $2/Index.html + for p ("" $cats) touch -d ${now/ /T} $2/$p/Index.html ;; (*) usage ;; esac