Commit Diff


commit - efb35fc6373ee692ad40c6b1d64210513de03df9
commit + 588b55fbdbdb143bad22870345f7d91d8e7b7bf5
blob - 8f7ef80c7d9ea7898c1a60b309b76b2d1c4c6c45
blob + 564a9499b29181fc2547d366882a4af7c680f7a7
--- gemtext.lisp
+++ gemtext.lisp
@@ -44,7 +44,10 @@
                                                     :text (strim s 2)))
           ((prefix-p "#" s)   (make-instance 'title :level 1
                                                     :text (strim s 1)))
-          ((prefix-p "=>" s)  (parse-link (strim s 2)))
+          ((prefix-p "=>" s)  (let ((s (strim s 2)))
+                                (if (string-equal s "")
+                                    (make-instance 'paragraph :text "=>")
+                                    (parse-link s))))
           ((prefix-p "* " s)  (make-instance 'item :text (strim s 1)))
           ((prefix-p ">" s)   (make-instance 'blockquote :text (strim s 1)))
           (t (make-instance 'paragraph :text (strim s 0))))))
blob - 11c6d0387a8ca0645c1dba062371db92eb4432dd
blob + 3a463a0593a373047b354add2c06b13dd0c2c74f
--- t/gemtext-tests.lisp
+++ t/gemtext-tests.lisp
@@ -22,6 +22,9 @@
                        ("###title" . ,(make-instance 'gemtext:title
                                                      :text "title"
                                                      :level 3))
+                       ;; handle gracefully invalid link lines
+                       ("=>" . ,(make-instance 'gemtext:paragraph
+                                               :text "=>"))
                        ("=>/foo" . ,(make-instance 'gemtext:link
                                                    :url (quri:uri "/foo")))
                        ("=> /foo bar" . ,(make-instance 'gemtext:link