summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/tissue5
-rw-r--r--tissue/web/dev.scm17
-rw-r--r--tissue/web/server.scm7
3 files changed, 15 insertions, 14 deletions
diff --git a/bin/tissue b/bin/tissue
index 2c05552..47c9c6f 100755
--- a/bin/tissue
+++ b/bin/tissue
@@ -278,7 +278,7 @@ Serve repositories specified in CONFIG-FILE over HTTP.
(parameterize ((%current-git-repository
(repository-open repository-directory)))
(cons name
- `((css . ,(tissue-configuration-web-css (load-config)))
+ `((project . ,(load-config))
(repository-directory . ,repository-directory)
(website-directory . ,(string-append state-directory "/" name "/website"))
(xapian-directory . ,(string-append state-directory "/" name "/xapian"))
@@ -311,8 +311,7 @@ Serve website and issues of current repository.
(start-repl (assq-ref args 'listen-repl)))
(start-dev-web-server (assq-ref args 'port)
%xapian-index
- (tissue-configuration-web-css (load-config))
- (tissue-configuration-web-files (load-config)))))))
+ (load-config))))))
(define (print-usage)
(format #t "Usage: ~a COMMAND [OPTIONS] [ARGS]
diff --git a/tissue/web/dev.scm b/tissue/web/dev.scm
index ba43930..7f29be6 100644
--- a/tissue/web/dev.scm
+++ b/tissue/web/dev.scm
@@ -26,21 +26,22 @@
#:use-module (web server)
#:use-module (web uri)
#:use-module (xapian xapian)
+ #:use-module (tissue tissue)
#:use-module (tissue utils)
#:use-module (tissue web server)
#:use-module (tissue web static)
#:export (start-dev-web-server))
-(define (handler request body xapian-index css files)
+(define (handler request body xapian-index project)
"Handle web @var{request} with @var{body} and return two values---the
response headers and body. See @code{start-dev-web-server} for
-documentation of @var{xapian-index}, @var{css} and @var{files}."
+documentation of @var{xapian-index} and @var{project}."
(let ((path (uri-path (request-uri request))))
(log-request request)
(cond
;; Search page
((member path (list "/" "/search"))
- (search-handler request body xapian-index css))
+ (search-handler request body xapian-index project))
;; Files
((any (lambda (web-file)
(cond
@@ -50,7 +51,7 @@ documentation of @var{xapian-index}, @var{css} and @var{files}."
(try-paths path))
=> (cut file <> (file-writer web-file)))
(else #f)))
- files)
+ (tissue-configuration-web-files project))
=> (lambda (file)
(values `((content-type . ,(mime-type-for-extension
(file-name-extension (file-name file)))))
@@ -62,17 +63,17 @@ documentation of @var{xapian-index}, @var{css} and @var{files}."
(else
(404-response request)))))
-(define (start-dev-web-server port xapian-index css files)
+(define (start-dev-web-server port xapian-index project)
"Start development web server listening on
@var{port}. @var{xapian-index} is the path to the Xapian index to
-search in. @var{css} is a URI to a stylesheet. @var{files} is a list
-of @code{<file>} objects describing files to serve."
+search in. @var{project} is a @code{<tissue-configuration>} object
+describing the project."
(format (current-error-port)
"Tissue development web server listening at http://localhost:~a~%" port)
;; Explicitly dereference the module and handler variable each time
;; so as to support live hacking.
(run-server (cut (module-ref (resolve-module '(tissue web dev))
'handler)
- <> <> xapian-index css files)
+ <> <> xapian-index project)
'http
(list #:port port)))
diff --git a/tissue/web/server.scm b/tissue/web/server.scm
index 1e6d04b..e9665ec 100644
--- a/tissue/web/server.scm
+++ b/tissue/web/server.scm
@@ -41,6 +41,7 @@
#:use-module (tissue document)
#:use-module (tissue git)
#:use-module (tissue search)
+ #:use-module (tissue tissue)
#:use-module (tissue utils)
#:export (log-request
mime-type-for-extension
@@ -237,7 +238,7 @@ query. QUERY and FILTER are Xapian Query objects."
db (new-Query (Query-OP-FILTER) query filter))
#:maximum-items (database-document-count db))))
-(define (search-handler request body xapian-index css)
+(define (search-handler request body xapian-index project)
(let* ((path (uri-path (request-uri request)))
(parameters (query-parameters (uri-query (request-uri request))))
(search-query (or (assoc-ref parameters "query")
@@ -280,7 +281,7 @@ query. QUERY and FILTER are Xapian Query objects."
'()
mset))
search-query
- css
+ (tissue-configuration-web-css project)
#:page-uri-path path
#:page-uri-parameters parameters
#:matches (matches db query (Query-MatchAll))
@@ -320,7 +321,7 @@ See `start-web-server' for documentation of HOSTS."
((member path (list "/" "/search"))
(search-handler request body
(assq-ref host-parameters 'xapian-directory)
- (assq-ref host-parameters 'css)))
+ (assq-ref host-parameters 'project)))
;; Static files
((let ((file-path
(find file-exists?