Adding syntax highlighting support to the pastebin
parent
54b52e7b01
commit
0e60982aca
|
@ -24,7 +24,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th valign="top">Contents:</th>
|
<th valign="top">Content:</th>
|
||||||
<td><textarea rows="24" cols="60" name="contents"></textarea></td>
|
<td><textarea rows="24" cols="60" name="contents"></textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -8,4 +8,4 @@
|
||||||
<tr><th>Created:</th><td><% "date" get write %></td></tr>
|
<tr><th>Created:</th><td><% "date" get write %></td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<pre><% "contents" get write %></pre>
|
<% "syntax" render-template %
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th valign="top">Contents:</th>
|
<th valign="top">Content:</th>
|
||||||
<td><textarea rows="24" cols="60" name="contents"></textarea></td>
|
<td><textarea rows="24" cols="60" name="contents"></textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
USING: calendar furnace furnace.validator io.files kernel
|
USING: calendar furnace furnace.validator io.files kernel
|
||||||
namespaces sequences store ;
|
namespaces sequences store http.server.responders html ;
|
||||||
IN: webapps.pastebin
|
IN: webapps.pastebin
|
||||||
|
|
||||||
TUPLE: pastebin pastes ;
|
TUPLE: pastebin pastes ;
|
||||||
|
@ -28,21 +28,25 @@ SYMBOL: store
|
||||||
pastebin get pastebin-pastes nth ;
|
pastebin get pastebin-pastes nth ;
|
||||||
|
|
||||||
: show-paste ( n -- )
|
: show-paste ( n -- )
|
||||||
get-paste "show-paste" render-component ;
|
serving-html
|
||||||
|
get-paste
|
||||||
|
[ "show-paste" render-component ] with-html-stream ;
|
||||||
|
|
||||||
\ show-paste { { "n" v-number } } define-action
|
\ show-paste { { "n" v-number } } define-action
|
||||||
|
|
||||||
: new-paste ( -- )
|
: new-paste ( -- )
|
||||||
"new-paste" render-template ;
|
serving-html
|
||||||
|
[ "new-paste" render-template ] with-html-stream ;
|
||||||
|
|
||||||
\ new-paste { } define-action
|
\ new-paste { } define-action
|
||||||
|
|
||||||
: paste-list ( -- )
|
: paste-list ( -- )
|
||||||
|
serving-html
|
||||||
[
|
[
|
||||||
[ show-paste ] "show-paste-quot" set
|
[ show-paste ] "show-paste-quot" set
|
||||||
[ new-paste ] "new-paste-quot" set
|
[ new-paste ] "new-paste-quot" set
|
||||||
pastebin get "paste-list" render-component
|
pastebin get "paste-list" render-component
|
||||||
] with-scope ;
|
] with-html-stream ;
|
||||||
|
|
||||||
\ paste-list { } define-action
|
\ paste-list { } define-action
|
||||||
|
|
||||||
|
@ -68,7 +72,7 @@ SYMBOL: store
|
||||||
|
|
||||||
\ submit-paste [ paste-list ] define-redirect
|
\ submit-paste [ paste-list ] define-redirect
|
||||||
|
|
||||||
: annotate-paste ( n summary author contents -- )
|
: annotate-paste ( n summary author mode contents -- )
|
||||||
<annotation> swap get-paste
|
<annotation> swap get-paste
|
||||||
paste-annotations push
|
paste-annotations push
|
||||||
save-pastebin-store ;
|
save-pastebin-store ;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<% USING: namespaces io furnace sequences ; %>
|
<% USING: namespaces io furnace sequences xmode.code2html ; %>
|
||||||
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
<title>Paste: <% "summary" get write %></title>
|
<title>Paste: <% "summary" get write %></title>
|
||||||
<link rel="stylesheet" href="/responder/file/css/pastebin.css" type="text/css" media="screen" title="no title" charset="utf-8" />
|
<link rel="stylesheet" href="/responder/file/css/pastebin.css" type="text/css" media="screen" title="no title" charset="utf-8" />
|
||||||
|
<% default-stylesheet %>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<h1 class="pastebin-title">[ <% "summary" get write %> ]</h1>
|
<h1 class="pastebin-title">[ <% "summary" get write %> ]</h1>
|
||||||
|
@ -20,7 +21,7 @@
|
||||||
<tr><th>File type:</th><td><% "mode" get write %></td></tr>
|
<tr><th>File type:</th><td><% "mode" get write %></td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<pre><% "contents" get write %></pre>
|
<% "syntax" render-template %>
|
||||||
|
|
||||||
<% "annotations" get [ "annotation" render-component ] each %>
|
<% "annotations" get [ "annotation" render-component ] each %>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
<% USING: xmode.catalog sequences kernel html.elements assocs io ; %>
|
<% USING: xmode.code2html splitting namespaces ; %>
|
||||||
|
|
||||||
<select name="mode">
|
<pre><% "contents" get string-lines "mode" get htmlize-lines %></pre>
|
||||||
<% modes keys [
|
|
||||||
<option dup "factor" = [ "true" =selected ] when option> write </option>
|
|
||||||
] each %>
|
|
||||||
</select>
|
|
||||||
|
|
Loading…
Reference in New Issue