fn conf_enable_smak { if (~ $smak_extensions '') smak_extensions=(png jpg jpeg bmp gif) if (~ $smak_prev_width '') smak_prev_width=420 if (~ $smak_thumb_size '') smak_thumb_height=96 smak_base_uri=$conf_wd smak_root=`{pwd} conf_enable_app smak } fn smak_init { p=`{echo $req_path | sed 's!^'^$smak_base_uri^'!!'} smak_dir=`{basename -d $"p | sed 's!^\.$!!'} smak_img=`{basename $"p} smak_file=`{ls $smak_root/$"smak_dir/$"smak_img^.$smak_extensions \ >[2]/dev/null | sed 1q} smak_dir_list=`{ls $smak_root/$"smak_dir/*.$smak_extensions \ >[2]/dev/null | sed -e 's!.*/([^/]+)\.[^\.]+$!\1!' \ | sort -n | uniq} # -un did not work, don't ask me why smak_comment=`{basename -d $"smak_file}^/_^$"smak_img^.md extraHeaders=($extraHeaders '') if(test -f $smak_file) handler_body_main=(tpl_handler `{smak_template preview}) if not if(~ $"smak_img '' && test -d $smak_root/$"smak_dir \ && ! test -f $smak_root/$"smak_dir^/index.^(md htm html tpl) \ && ! test -f $werc_root/$local_path) handler_body_main=(tpl_handler `{smak_template thumbnails}) } fn smak_template { if(test -f $smak_root/_werc/smak/$1.tpl) echo -n $smak_root/_werc/smak/$1.tpl if not get_lib_file smak/$1.tpl apps/smak/$1.tpl } fn smak_resize { {png -t9 $3 || jpg -t9 $3 || bmp -t9 $3 || gif -t9 $3} \ >[2]/dev/null | resample $1 $2 | topng > $4 } fn smak_preview { p=_werc/smak/prev/ f=$smak_root/$p^$"smak_dir/$"smak_img.png t=`{echo $"smak_img | sed 's/_/ /g'} mkdir -p `{basename -d $f} if(! test $f -nt $smak_file) smak_resize -x $smak_prev_width $smak_file $f echo '' \ ''$' } fn smak_thumbnails { p=_werc/smak/thumb/ d=$smak_root/$p^$"smak_dir mkdir -p $d for(i in $smak_dir_list){ f=$d/$i.png o=`{ls $smak_root/$"smak_dir/$i^.$smak_extensions \ >[2]/dev/null | sed 1q} t=`{echo $i | sed 's/_/ /g'} s='' if(~ $o $smak_file) s='class="thisPage" ' if(! test $f -nt $o) smak_resize -y $smak_thumb_height $o $f echo '' \ ''$' } } fn smak_preload { t=_werc/smak/prev/$"smak_dir/^`{basename $1}^.png o=`{ls $smak_root/$"smak_dir/^`{basename $1}^.$smak_extensions \ >[2]/dev/null | sed 1q} f=$smak_root/$t mkdir -p `{basename -d $f} if(! test $f -nt $o) smak_resize -x $smak_prev_width $o $f echo '' } fn smak_navigation { b=$smak_base_uri^_werc/smak/prev/$"smak_dir/ p='' for(i in $smak_base_uri$"smak_dir/$smak_dir_list){ if(~ $req_path $i){ if(! ~ $"p '') echo '' echo '::' } if(~ $req_path $"p){ smak_next=$i echo '' } p=$i } }