From 526f422ce50823f7d78be1857f4538f600ffafd9 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sat, 9 Jul 2022 00:27:26 +0530 Subject: bin: Make indexed documents a list of document objects. This simplifies the interface obviating the need for an type. * bin/tissue: Do not import (srfi srfi-9). (): Delete type. (index): Expect indexed documents to be a list of document objects. * tissue.scm (#:indexed-documents): Pass in a list of document objects, instead of a list of objects. --- bin/tissue | 18 ++---------------- tissue.scm | 5 +++-- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/bin/tissue b/bin/tissue index 9ab6330..4d91ba9 100755 --- a/bin/tissue +++ b/bin/tissue @@ -24,7 +24,6 @@ exec guile --no-auto-compile -s "$0" "$@" (rnrs exceptions) (rnrs io ports) (srfi srfi-1) - (srfi srfi-9) (srfi srfi-26) (srfi srfi-37) (srfi srfi-171) @@ -54,16 +53,6 @@ exec guile --no-auto-compile -s "$0" "$@" (define %xapian-index (string-append %state-directory "/xapian")) -(define-record-type - (indexed-document reader web-uri) - indexed-document? - ;; A thunk that returns a document object (currently either an - ;; or a object), presumably by reading it from a - ;; file or other source - (reader indexed-document-reader) - ;; A string URI linking to this document on the web - (web-uri indexed-document-web-uri)) - (define (invalid-option opt name arg loads) (error "Invalid option" name)) @@ -333,11 +322,8 @@ To get usage information for one of these sub-commands, run (delete-file-recursively db-path) (call-with-writable-database db-path (lambda (db) - (for-each (lambda (indexed-document) - (let* ((document (slot-set ((indexed-document-reader indexed-document)) - 'web-uri - (indexed-document-web-uri indexed-document))) - (term-generator (document-term-generator document))) + (for-each (lambda (document) + (let ((term-generator (document-term-generator document))) (index-text! term-generator (document-type document) #:prefix "XT") (replace-document! db (document-id-term document) diff --git a/tissue.scm b/tissue.scm index 08522b4..69dba6f 100644 --- a/tissue.scm +++ b/tissue.scm @@ -1,8 +1,9 @@ (tissue-configuration #:project "tissue" #:indexed-documents (map (lambda (filename) - (indexed-document (cut read-gemtext-issue filename) - (string-append "/" (string-remove-suffix ".gmi" filename)))) + (slot-set (read-gemtext-issue filename) + 'web-uri + (string-append "/" (string-remove-suffix ".gmi" filename)))) (gemtext-files-in-directory "issues")) #:web-files (cons (file "index.html" (skribe-exporter "website/index.skb")) -- cgit v1.2.3