paste

werc .tpl file to paste github raw content

Mirrored from GitHub

git clone https://github.com/christc4/paste.git

Jump to: README.md app.rc catn2 foot.tpl


README.md

1	# paste
2	
3	werc pastebin app
4	
5	bugs:
6	
7	- 200 line limit
8	- unable to open raw content 
9	
10	catn2 is a RC script that prints line numbers enclosed in span tag, for CSS you must add
11	
12	`span{user-select:none}`
13	
14	core taken from <https://contrib.9front.org/sl/www/werc/sites/contrib.9front.org/sl/www/werc/apps/paste/app.rc>
15	
16	example at <https://bauherren.ovh/paste/>

app.rc

1	fn conf_enable_wercpaste {
2		paste_url=$conf_wd
3		paste_dir=`{pwd}^/_werc/src 
4		conf_enable_app wercpaste
5	    ll_add handlers_body_foot template apps/paste/foot.tpl
6	
7	}
8	
9	fn wercpaste_init {
10		if (~ $REQUEST_METHOD POST && ~ $post_arg_url url && ~ $req_path $paste_url ) { # incoming paste 
11			now=`{ date -n }
12			if (~ $cksum '1715a8eb' ) { # empty paste; discard
13				post_redirect $base_url^$paste_url
14			}
15			if not {  # save and redirect
16				echo $"post_arg_paste > $paste_dir^/^$now
17				post_redirect $base_url^$paste_url^$now
18			}
19		} 
20		if not { # show a paste if there is one
21			if (test -r $werc_root/$local_path && ~ $QUERY_STRING raw ) { 
22					echo 'Content-type: text/plain; charset=UTF-8'; echo ''; exec cat $werc_root/$local_path
23				} 
24		}
25	
26		if (~ $REQUEST_METHOD GET ) { handler_body_main='begforpaste' }
27	
28	}
29	
30	fn begforpaste {
31		echo '
32		<h3>pastebin</h3>
33		<form action="'$paste_url'" method="post">
34		<textarea name="paste" cols="80" rows="15" required></textarea><br>
35		<input type="submit" name="submit" value=Submit>
36		<span style="display: none"><input type="text" name="url" value="url"> (do not change) </span>
37		</form>
38		'
39	}

catn2

1	#!/bin/rc
2	
3	switch($#*) {
4	case 0
5		awk '{printf("<span>%d</span>\t%s\n",NR,$0)}'
6	case 1 
7		awk '{printf("<span>%d</span>\t%s\n",NR,$0)}' < $1
8	case *
9		echo 'usage: catn file' >[1=2]
10		echo '       catn < file' >[1=2]
11		echo '       cat file | catn' >[1=2]
12	}
13	

foot.tpl

1	% for (file in `{ls -r $paste_dir/*}) {
2	% link=`{echo $file | sed 's|/var/www/werc/sites/bauherren.ovh/paste/_werc/src/||g' }
3	<code><h3><a href=/paste/#%($"link%) class=pasteLink>%($"link%)</a></h3></code>
4	<pre id=%($"link%)>
5	%  cat $file | escape_html | catn2 
6	</pre><br>
7	% }
8	
9	
10