1
0
Fork 0

- [gemini] fixed gemini text parser.

This commit is contained in:
cage 2021-04-05 15:37:59 +02:00
parent eaf23afb58
commit eefb64eb8e
1 changed files with 16 additions and 12 deletions

View File

@ -175,7 +175,8 @@
list-item
quote-line
text-line
cr-lf)))
cr-lf))
(:function first))
(define-constant +h1-underline+ #\━ :test #'char=)
@ -495,17 +496,20 @@
(write-string (linkify link-value link-value) stream))))))))))
(defun parse-gemini-file (data)
(let* ((was-raw-mode *raw-mode*)
(actual-data (if (and (string-not-empty-p data)
(char/= (last-elt data) #\Newline))
(strcat data (string #\Newline))
data))
(parsed (parse 'gemini-file actual-data :junk-allowed t)))
(if was-raw-mode
(if *raw-mode*
(list (html-utils:make-tag-node :as-is nil data))
parsed)
parsed)))
(let* ((lines (if (string= (format nil "~%") data)
(list (format nil "~%"))
(mapcar (lambda (a)
(strcat a (string #\Newline)))
(split-lines data)))))
(loop for line in lines
collect
(let ((was-raw-mode *raw-mode*)
(parsed-line (parse 'gemini-file line :junk-allowed t)))
(if was-raw-mode
(if *raw-mode*
(html-utils:make-tag-node :as-is nil line)
parsed-line)
parsed-line)))))
;; response header