changelog shortlog tags branches changeset files revisions annotate raw help

Mercurial > hg > werc / apps/wman/app.rc

changeset 665: 5314c20efddb
parent: fb460a671d19
author: sl
date: Wed, 10 Feb 2016 20:34:33 -0500
permissions: -rwxr-xr-x
description: apps/wman: fix comments and restore template syntax.
1 fn conf_enable_wman {
2  wman_tmac=an
3  wman_base_uri=$conf_wd
4  wman_man_path=$*
5  if(~ $#wman_man_path 0)
6  wman_man_path=$wman_base_uri
7  conf_enable_app wman
8 }
9 
10 wman_junk_filter='/(\/(INDEX|\.cvsignore|_.*)|\.9p|\.html)$/d; s!/man([0-9]+/[^/]+)$!/\1!; '
11 fn wman_ls_pages {
12  ls $* \
13  | sed $dirfilter^$wman_junk_filter^' s/\.([0-9]|9p)$//; s!/0intro$!/intro!' \
14  | sort -u
15 }
16 fn wman_init {
17  ifs=$ifs^'/' { p=`{echo $req_path | sed 's!^'^$wman_base_uri^'!!'} }
18  wman_cat=$p(1)
19  wman_page=$p(2)
20  if(~ $#wman_unix_mode 1) {
21  wman_cp='man'
22  wman_pe=.^$"wman_cat
23  }
24 
25  if(! ~ $"wman_cat '') {
26  wman_cat_path=$wman_man_path^/^$"wman_cp^$p(1)
27  if(! ~ $"wman_page '') {
28  wman_page_file=$wman_page^$"wman_pe
29  # Hack to handle 0intro files.
30  if(~ $wman_page intro && test -f $wman_cat_path^/0^$"wman_page_file)
31  wman_page_file=0^$"wman_page_file
32  wman_page_file=$wman_cat_path^/^$"wman_page_file
33  x=`{echo $"req_path|sed 's%.*/([^/]+)/'$"wman_cat'/'^$"wman_page^'%\1%; s%_% %g'}
34  pageTitle=$wman_page' page from Section '$wman_cat' of the '^$"x' manual'
35  }
36  }
37 
38  wman_cat_list=`{ls -F $wman_man_path/*/ \
39  | sed -e $wman_junk_filter -e 's!.*/([^/]+)/[^/]+$!\1!; /[0-9]+/!d' \
40  | sort -un}
41 
42  synth_paths=($wman_base_uri$wman_cat_list'/')
43 
44  if(~ $req_path $wman_base_uri && ~ $"handler_body_main '')
45  handler_body_main=(tpl_handler apps/wman/section_list.tpl)
46  if not if(~ $req_path $wman_base_uri^*) {
47  #^*/[a-z0-9]*[a-z]* $wman_base_uri^*/*[a-z]*[a-z0-9] $wman_base_uri^*/[a-z])
48  if(echo $req_path | grep -s '^'^$wman_base_uri^'/*[0-9]+/[0-9a-z\-\+\.]+$')
49  if(test -f $wman_page_file) # Check for 404
50  handler_body_main=(tpl_handler apps/wman/man_page.tpl)
51  if not if(~ $req_path $wman_base_uri^*/)
52  handler_body_main=(tpl_handler apps/wman/page_list.tpl)
53  if not if(~ $p(2) [A-Z]* [0-9][A-Z]*) # Correct badly capitalized links
54  perm_redirect $wman_base_uri^$p(1)^/^`{echo $p(2) |tr 'A-Z' 'a-z'}
55  }
56 
57  # Search
58  ll_add handlers_body_head tpl_handler apps/wman/search.tpl
59  if(! ~ $"post_arg_wman_search '') {
60  s=`{echo $post_arg_wman_search | sed 's/[^a-zA-Z0-9\-\.]+//g; s/\.+/./g; 1q'}
61  ifs='' { wman_search_results=`{wman_ls_pages $wman_man_path/*/*^$"s^*} }
62  if(! ~ $"post_arg_go '' && ~ `{echo -n $wman_search_results|wc -l} 1)
63  post_redirect $wman_base_uri^`{echo $wman_search_results|awk -F/ '{print $(NF-1)"/"$NF}'}
64  }
65 
66 }
67 
68 fn wman_get_section_desc {
69  cat $wman_man_path/^$"wman_cp^$1/0intro* >[2]/dev/null| sed '1,2d; s!intro \\- [Ii]ntroduction to !!; 3q;'
70 }
71 
72 fn wman_page_gen {
73  #troff -manhtml $1| troff2html -t 'Plan 9 from User Space'
74  troff -N -m$wman_tmac $1 | wman_out_filter
75 }
76 
77 fn wman_out_filter {
78  wman_default_out_filter
79 }
80 
81 fn wman_default_out_filter {
82  # col -x syntax is the same for UNIX and Plan 9.
83  escape_html \
84  | sed 's!([\.\-a-zA-Z0-9]+)\(('^`{echo $wman_cat_list|tr ' ' '|'}^')\)!<a href="../\2/\1">&</a>!g' \
85  | awk '/^$/ {if(n != 1) print; n=1; next} /./ {n=0; print}' \
86  | col -x
87 }
88 
89