summary refs log tree commit diff
path: root/tissue/tissue.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tissue/tissue.scm')
-rw-r--r--tissue/tissue.scm21
1 files changed, 18 insertions, 3 deletions
diff --git a/tissue/tissue.scm b/tissue/tissue.scm
index e42420a..2e901d2 100644
--- a/tissue/tissue.scm
+++ b/tissue/tissue.scm
@@ -22,23 +22,26 @@
   #:use-module (srfi srfi-71)
   #:use-module (ice-9 match)
   #:use-module (tissue git)
+  #:use-module (tissue web themes default)
   #:export (tissue-configuration
             tissue-configuration?
             tissue-configuration-project
             tissue-configuration-aliases
             tissue-configuration-indexed-documents
             tissue-configuration-web-css
+            tissue-configuration-web-search-renderer
             tissue-configuration-web-files
             gemtext-files-in-directory))
 
 (define-record-type <tissue-configuration>
   (make-tissue-configuration project aliases indexed-documents
-                             web-css web-files)
+                             web-css web-search-renderer web-files)
   tissue-configuration?
   (project delayed-tissue-configuration-project)
   (aliases delayed-tissue-configuration-aliases)
   (indexed-documents delayed-tissue-configuration-indexed-documents)
   (web-css delayed-tissue-configuration-web-css)
+  (web-search-renderer delayed-tissue-configuration-web-search-renderer)
   (web-files delayed-tissue-configuration-web-files))
 
 (define tissue-configuration-project
@@ -53,6 +56,9 @@
 (define tissue-configuration-web-css
   (compose force delayed-tissue-configuration-web-css))
 
+(define tissue-configuration-web-search-renderer
+  (compose force delayed-tissue-configuration-web-search-renderer))
+
 (define tissue-configuration-web-files
   (compose force delayed-tissue-configuration-web-files))
 
@@ -96,7 +102,10 @@ directory they are in."
                                      #`(delay #,arg)))
                                #'(args :::)))))))))))))
 
-(define-lazy (tissue-configuration #:key project (aliases '()) (indexed-documents '()) web-css (web-files '()))
+(define-lazy (tissue-configuration #:key project (aliases '()) (indexed-documents '())
+                                   web-css
+                                   (web-search-renderer render-sxml)
+                                   (web-files '()))
   "Construct a <tissue-configuration> object. All arguments are
 evaluated lazily.
 
@@ -115,6 +124,12 @@ documents to index.
 document root and must begin with a @code{\"/\"}. If it is @code{#f},
 no stylesheet is used in the generated web pages.
 
+@var{web-search-renderer} is a function that accepts two arguments---a
+@code{<search-page>} object describing the search page and a
+@code{<tissue-configuration>} object describing the project. It must
+return the rendered SXML.
+
 @var{web-files} is a list of @code{<file>} objects representing files to be
 written to the web output."
-   (make-tissue-configuration project aliases indexed-documents web-css web-files))
+   (make-tissue-configuration project aliases indexed-documents
+                              web-css web-search-renderer web-files))