Source responder with syntax highlighting
parent
0e60982aca
commit
59566c20e9
|
@ -1,4 +1,4 @@
|
|||
! Copyright (C) 2004, 2006 Slava Pestov.
|
||||
! Copyright (C) 2004, 2007 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: calendar html io io.files kernel math math.parser
|
||||
http.server.responders http.server.templating namespaces parser
|
||||
|
@ -31,15 +31,24 @@ IN: webapps.file
|
|||
"304 Not Modified" response
|
||||
now timestamp>http-string "Date" associate print-header ;
|
||||
|
||||
! You can override how files are served in a custom responder
|
||||
SYMBOL: serve-file-hook
|
||||
|
||||
[
|
||||
nip
|
||||
file-response
|
||||
stdio get stream-copy
|
||||
] serve-file-hook set-global
|
||||
|
||||
: serve-static ( filename mime-type -- )
|
||||
over last-modified-matches? [
|
||||
2drop not-modified-response
|
||||
] [
|
||||
dupd file-response
|
||||
"method" get "head" = [
|
||||
drop
|
||||
file-response
|
||||
] [
|
||||
<file-reader> stdio get stream-copy
|
||||
>r dup <file-reader> r>
|
||||
serve-file-hook get call
|
||||
] if
|
||||
] if ;
|
||||
|
||||
|
@ -53,9 +62,13 @@ SYMBOL: page
|
|||
: include-page ( filename -- )
|
||||
"doc-root" get swap path+ run-page ;
|
||||
|
||||
: serve-fhtml ( filename -- )
|
||||
serving-html
|
||||
"method" get "head" = [ drop ] [ run-page ] if ;
|
||||
|
||||
: serve-file ( filename -- )
|
||||
dup mime-type dup "application/x-factor-server-page" =
|
||||
[ drop serving-html run-page ] [ serve-static ] if ;
|
||||
[ drop serve-fhtml ] [ serve-static ] if ;
|
||||
|
||||
: file. ( name dirp -- )
|
||||
[ "/" append ] when
|
||||
|
@ -107,7 +120,7 @@ SYMBOL: page
|
|||
|
||||
global [
|
||||
! Serve up our own source code
|
||||
"resources" [
|
||||
"resources" [
|
||||
[
|
||||
"" resource-path "doc-root" set
|
||||
file-responder
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
! Copyright (C) 2007 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: io.files namespaces webapps.file http.server.responders
|
||||
xmode.code2html kernel ;
|
||||
IN: webapps.source
|
||||
|
||||
global [
|
||||
! Serve up our own source code
|
||||
"source" [
|
||||
[
|
||||
"" resource-path "doc-root" set
|
||||
[
|
||||
drop
|
||||
serving-html
|
||||
htmlize-stream
|
||||
] serve-file-hook set
|
||||
file-responder
|
||||
] with-scope
|
||||
] add-simple-responder
|
||||
] bind
|
Loading…
Reference in New Issue