- [[ $# -eq 1 ]] && data=`< $page` || data=$2
- data=${data//&/&}
- data=${data//</<}
- data=${data//>/>}
- for p (${=links[$page]}) {
- getrel $page $p
- data="${data//\[${p}\]/<a href=\"${REPLY}.html\">[$p]</a>}"
- }
- print "<\!DOCTYPE html>
-<html><head><title>$page (${pages[$page]})</title></head><body><pre>
-$data
-</pre>"
+ [[ $# -eq 1 ]] && data=${mapfile[$page]} || data=$2
+ local _links=(${(oi)=links[$page]})
+ if [[ ( ${cached[$page]} ) && ( -s $ZK_CACHE/${page}.html ) ]]; then
+ < $ZK_CACHE/${page}.html
+ else
+ data=${data//&/&}
+ data=${data//</<}
+ data=${data//>/>}
+ for p ($_links) {
+ getrel $page $p
+ [[ -d $p ]] && REPLY=$REPLY/index
+ data="${data//\[${p}\]/<a href=\"${REPLY}.html\">[$p]</a>}"
+ }
+ data="<!DOCTYPE html>
+<html><head>
+<title>$page (${pages[$page]})</title>
+<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
+</head><body><pre>
+$data</pre>"
+ if [[ $ZK_CACHE ]]; then
+ print -r "$data" > $ZK_CACHE/${page}.html
+ < $ZK_CACHE/${page}.html
+ else
+ print -r "$data"
+ fi
+ fi
+ if [[ $_links ]]; then
+ print "<hr/>Links:<ul>"
+ for p ($_links) {
+ getrel $page $p
+ print "<li><a href=\"${REPLY}.html\">$p</a> <sup>${pages[$p]}</sup></li>"
+ }
+ print "</ul>"
+ fi