diff options
-rw-r--r-- | mulkcms.lisp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/mulkcms.lisp b/mulkcms.lisp index 12b9b7e..13aea8d 100644 --- a/mulkcms.lisp +++ b/mulkcms.lisp @@ -57,13 +57,25 @@ :comments-link "" :comments-heading "Comments"))) +(defun format-comment-content (text) + ;; Taken from Mulkblog. + (with-html-output-to-string (out) + (loop for last-position = 0 then (cadr matches) + for matches = (ppcre:all-matches "(\\n|\\r|\\r\\n)(\\n|\\r|\\r\\n)+" + text) + then (cddr matches) + while (not (endp matches)) + do (htm (:p (esc (subseq text last-position (car matches))))) + finally + (htm (:p (esc (subseq text last-position))))))) + (defun paramify-comment (comment-revision-data) (destructuring-bind (crid comment date content author format status article-revision &rest args) comment-revision-data (declare (ignore args crid article-revision status format comment)) (list :publishing-date date - :body content + :body (format-comment-content content) :author author ;;FIXME :link "" |