summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2022-07-07 02:19:25 +0530
committerArun Isaac2022-07-07 02:26:08 +0530
commitf783abafa220124817a2782430cb63c9f3511d15 (patch)
treec0e26281ec48314cbd573a44ce40e6f3ddafc927
parentdc6e932000730ede3c23a270390db9482953b41a (diff)
downloadtissue-f783abafa220124817a2782430cb63c9f3511d15.tar.gz
tissue-f783abafa220124817a2782430cb63c9f3511d15.tar.lz
tissue-f783abafa220124817a2782430cb63c9f3511d15.zip
issue: Parse known keys in list lines even if they are long.
We drop the restriction that values in key-value pairs should be 2
words or less. Instead, if the key is a known key such as "keywords:",
"tags:" or "status:", we always accept it as a key.

* tissue/issue.scm (file-details): Parse known keys in list lines even
if they are long.
* tests/issue.scm ("Parse keywords even if they are long"): New test.
-rw-r--r--tests/issue.scm5
-rw-r--r--tissue/issue.scm11
2 files changed, 6 insertions, 10 deletions
diff --git a/tests/issue.scm b/tests/issue.scm
index 74fb6c3..22982db 100644
--- a/tests/issue.scm
+++ b/tests/issue.scm
@@ -70,4 +70,9 @@
   (call-with-input-string "* term: This is a definition of term."
     (compose hashtable->alist file-details)))
 
+(test-equal "Parse keywords even if they are long"
+  '((keywords "this is a long keyword"))
+  (call-with-input-string "* keywords: this is a long keyword"
+    (compose hashtable->alist file-details)))
+
 (test-end "issue")
diff --git a/tissue/issue.scm b/tissue/issue.scm
index 905e937..f5becf6 100644
--- a/tissue/issue.scm
+++ b/tissue/issue.scm
@@ -325,16 +325,7 @@ gemtext file."
 				   (hashtable-update! result 'tasks 1+ 0)
 				   (unless (string=? (match:substring m 1) " ")
                                      (hashtable-update! result 'completed-tasks 1+ 0))))
-                             ((let ((alist (list-line->alist line)))
-                                (and alist
-                                     ;; Every value string is 2
-                                     ;; words or less.
-                                     (every (match-lambda
-                                              ((_ . values)
-                                               (every (cut <=n-words? <> 2)
-                                                      values)))
-                                            alist)
-                                     alist))
+                             ((list-line->alist line)
                               => (lambda (alist)
                                    ;; Insert values based on
                                    ;; their keys.