summary refs log tree commit diff
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?