yiyusfixes3377cb617 years agoHistory
107 lines · 2.5 KB · rc
RawDownload
fn conf_enable_flip {    extensions=(pdf ps)    prev_res=150    thumb_res=15     pages_root=`{pwd}^'/_werc/pages'    mkdir -p $pages_root    base_path=`{basename -d $conf_wd}     conf_enable_app flip} fn flip_init {    # this could cause problems with filenames matching [0-9]+    pages_doc=`{echo $local_path | sed 's|/[0-9]+(-[0-9]*)?/?$||'}    if (test -f $werc_root^'/'^$pages_doc^'.'^$extensions){	name=`{basename $pages_doc}	pages_doc_root=$pages_root^'/'^$name	pages_file=`{ls $werc_root^'/'^$pages_doc^'.'^$extensions}	if (! test $pages_doc_root -nt $pages_file){		mkdir -p $pages_doc_root'/thumbs/'		pages2pngs $pages_file $pages_doc_root'/thumbs' 15		pages2pngs $pages_file $pages_doc_root 90	}	page_num=`{basename $req_path}	page_tot=`{ls $pages_doc_root^/*.png |wc -l}	if (echo $page_num | grep -s '^[0-9]+-[0-9]*$'){		page_num=`{basename $req_path | sed 's/-[0-9]*//'}		handler_body_main=pageindex	}	if not if (~ $pages_doc $local_path){		page_num=1		handler_body_main=pageindex	}	if not		handler_body_main=pageprev	if (test $page_num -gt $page_tot)		handler_body_main=()    }} fn pages2pngs {	gs -q -dNOPAUSE -dBATCH -s'DEVICE=png16m' -r^$3 -d'TextAlphaBits=4' -d'GraphicsAlphaBits=4' -s'OutputFile='^$2^'/%d.png' $1 } fn pagelist {	ls -p $pages_doc_root | sed 's/\.png//p;d' | sort -n} # Usage: paginate number step total 'string %d %s'fn paginate {	awk '	BEGIN {		n='$1';		s='$2'; s3=int(s/3);		a=int(n/s3)*s3-s3;		if(a<1) a=1;		if(n>a+2*s3) a+=s3;		w=a+s;		t='$3';		str="'$4'";	}	NR==a && NR>1 {		printf(str, 1, "first");		if(n-s > 0)			printf(str, n-s, "(-" s ")");		print "|";	}	NR>=a && NR<w {		printf(str, NR, NR);	}	NR==w && NR<=t {		print "|";		if(n+s <= t)			printf(str, n+s, "(+" s ")");		printf(str, t, "last");	}'} fn pagethumbs {	for (p in `{ls -p $pages_doc_root | sed 's/\.png//p;d' | sort -n}){		img='<img src="'$base_path'/_werc/pages/'$name'/thumbs/'$p'.png">'		echo '<a href="'$base_path'/'$name'/'$p'">'$img'</a>'	}} fn pagenav {	ls -p $pages_doc_root^/*.png | sort -n | awk '	   /^'^`{basename $req_path}^'\.png/{	      if(sub("\.png$", "", p))	      	print "<a title=\"prev\" href=\"" p "\">'$1'</a>";	      print "<a title=\"all\" href=\"" int('$page_num'/50)*50+1 "-\">'$3'</a>";	      getline;	      if(sub("\.png$", "", $0))	      	print "<a title=\"next\" href=\"" $0 "\">'$2'</a>";	      exit;	   }	   {p = $0;}'} fn pageindex {	tpl_handler apps/flip/pageindex.tpl} fn pageprev {	tpl_handler apps/flip/pageprev.tpl}