diff --git a/extra/webapps/pastebin/annotate-paste.furnace b/extra/webapps/pastebin/annotate-paste.furnace
old mode 100644
new mode 100755
index 301726209b..89ce12fd61
--- a/extra/webapps/pastebin/annotate-paste.furnace
+++ b/extra/webapps/pastebin/annotate-paste.furnace
@@ -24,7 +24,7 @@
-Contents: |
+Content: |
|
diff --git a/extra/webapps/pastebin/annotation.furnace b/extra/webapps/pastebin/annotation.furnace
old mode 100644
new mode 100755
index ed1bdac845..d4617667ed
--- a/extra/webapps/pastebin/annotation.furnace
+++ b/extra/webapps/pastebin/annotation.furnace
@@ -8,4 +8,4 @@
Created: | <% "date" get write %> |
-<% "contents" get write %>
+<% "syntax" render-template %
diff --git a/extra/webapps/pastebin/new-paste.furnace b/extra/webapps/pastebin/new-paste.furnace
old mode 100644
new mode 100755
index 98b9bae8b7..28453f10f7
--- a/extra/webapps/pastebin/new-paste.furnace
+++ b/extra/webapps/pastebin/new-paste.furnace
@@ -25,7 +25,7 @@
-Contents: |
+Content: |
|
diff --git a/extra/webapps/pastebin/pastebin.factor b/extra/webapps/pastebin/pastebin.factor
old mode 100644
new mode 100755
index 382b7fbb85..ad2198f282
--- a/extra/webapps/pastebin/pastebin.factor
+++ b/extra/webapps/pastebin/pastebin.factor
@@ -1,5 +1,5 @@
USING: calendar furnace furnace.validator io.files kernel
-namespaces sequences store ;
+namespaces sequences store http.server.responders html ;
IN: webapps.pastebin
TUPLE: pastebin pastes ;
@@ -28,21 +28,25 @@ SYMBOL: store
pastebin get pastebin-pastes nth ;
: 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
: new-paste ( -- )
- "new-paste" render-template ;
+ serving-html
+ [ "new-paste" render-template ] with-html-stream ;
\ new-paste { } define-action
: paste-list ( -- )
+ serving-html
[
[ show-paste ] "show-paste-quot" set
[ new-paste ] "new-paste-quot" set
pastebin get "paste-list" render-component
- ] with-scope ;
+ ] with-html-stream ;
\ paste-list { } define-action
@@ -68,7 +72,7 @@ SYMBOL: store
\ submit-paste [ paste-list ] define-redirect
-: annotate-paste ( n summary author contents -- )
+: annotate-paste ( n summary author mode contents -- )
swap get-paste
paste-annotations push
save-pastebin-store ;
diff --git a/extra/webapps/pastebin/show-paste.furnace b/extra/webapps/pastebin/show-paste.furnace
old mode 100644
new mode 100755
index 8213857687..a724410b8c
--- a/extra/webapps/pastebin/show-paste.furnace
+++ b/extra/webapps/pastebin/show-paste.furnace
@@ -1,4 +1,4 @@
-<% USING: namespaces io furnace sequences ; %>
+<% USING: namespaces io furnace sequences xmode.code2html ; %>
@@ -9,6 +9,7 @@
Paste: <% "summary" get write %>
+ <% default-stylesheet %>
[ <% "summary" get write %> ]
@@ -20,7 +21,7 @@
File type: | <% "mode" get write %> |
-<% "contents" get write %>
+<% "syntax" render-template %>
<% "annotations" get [ "annotation" render-component ] each %>
diff --git a/extra/webapps/pastebin/syntax.furnace b/extra/webapps/pastebin/syntax.furnace
old mode 100644
new mode 100755
index cc09ae90ed..246b9d04b3
--- a/extra/webapps/pastebin/syntax.furnace
+++ b/extra/webapps/pastebin/syntax.furnace
@@ -1,7 +1,3 @@
-<% USING: xmode.catalog sequences kernel html.elements assocs io ; %>
+<% USING: xmode.code2html splitting namespaces ; %>
-
+<% "contents" get string-lines "mode" get htmlize-lines %>