summaryrefslogtreecommitdiff
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))