summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2023-04-15 13:39:07 +0100
committerArun Isaac2023-04-15 13:45:30 +0100
commitec825e7abc430c2389f9af46cccdfc2be585a90a (patch)
treeef7ccd4739dc5971aa9d01ffdef273821183735c
parent1da3680f56890f8adc2d512884526cc8d3f9bdb6 (diff)
downloadtissue-ec825e7abc430c2389f9af46cccdfc2be585a90a.tar.gz
tissue-ec825e7abc430c2389f9af46cccdfc2be585a90a.tar.lz
tissue-ec825e7abc430c2389f9af46cccdfc2be585a90a.zip
issue: Allow checkboxes without a space.
* tissue/issue.scm (file-details): Allow checkboxes without a space.
* tests/issue.scm ("Allow checkboxes without a space"): New test.
* issues/allow-checkboxes-without-a-space.gmi: Close issue.
-rw-r--r--issues/allow-checkboxes-without-a-space.gmi2
-rw-r--r--tests/issue.scm5
-rw-r--r--tissue/issue.scm5
3 files changed, 9 insertions, 3 deletions
diff --git a/issues/allow-checkboxes-without-a-space.gmi b/issues/allow-checkboxes-without-a-space.gmi
index c8d93d1..20d016f 100644
--- a/issues/allow-checkboxes-without-a-space.gmi
+++ b/issues/allow-checkboxes-without-a-space.gmi
@@ -10,3 +10,5 @@ In the example below, the first checklist item is not detected correctly.
 * [ ] Checkbox with a space
 * [x] Completed checkbox
 ```
+
+* closed
diff --git a/tests/issue.scm b/tests/issue.scm
index 22a04aa..53d908f 100644
--- a/tests/issue.scm
+++ b/tests/issue.scm
@@ -93,4 +93,9 @@ strings."
 * [x] bar"
     (compose hashtable->alist file-details)))
 
+(test-equal "Allow checkboxes without a space"
+  '((tasks . 1))
+  (call-with-input-string "* [] foo"
+    (compose hashtable->alist file-details)))
+
 (test-end "issue")
diff --git a/tissue/issue.scm b/tissue/issue.scm
index 1953cef..fd4a852 100644
--- a/tissue/issue.scm
+++ b/tissue/issue.scm
@@ -221,11 +221,10 @@ gemtext file."
                              ;; checkbox has any character other
                              ;; than space in it, the task is
                              ;; completed.
-                             ;; TODO: Allow [] and not just [ ] (that is, without a space).
-                             ((string-match "^\\* \\[(.)\\]" line)
+                             ((string-match "^\\* \\[(.*)\\]" line)
                               => (lambda (m)
 				   (hashtable-update! result 'tasks 1+ 0)
-				   (unless (string=? (match:substring m 1) " ")
+				   (unless (string-blank? (match:substring m 1))
                                      (hashtable-update! result 'completed-tasks 1+ 0))))
                              ((list-line->alist line)
                               => (lambda (alist)