diff of 57dc19cb5e4cf0e0c1ad12eeb4da4f32e549005f
57dc19cb5e4cf0e0c1ad12eeb4da4f32e549005f
diff --git a/resources/css/murja.css b/resources/css/murja.css
index 9508fa2..2500153 100644
--- a/resources/css/murja.css
+++ b/resources/css/murja.css
@@ -294,6 +294,12 @@ header {
.tags {
background-color: #A0A0A0;
font-size: 1.3em;
+ list-style: none;
+}
+
+.tags li {
+ display: inline;
+ margin-right: 10px;
}
.feed {
diff --git a/src/models/post.lisp b/src/models/post.lisp
index 32a583e..5f2c5bb 100644
--- a/src/models/post.lisp
+++ b/src/models/post.lisp
@@ -46,8 +46,9 @@
;; (postmodern:get-dao 'Post 349)
;; #<POST: ID: 349, TITLE: "Lisp webapps ", CONTENT: "<p>So, after <a href=\"https://feuerx.net/blog/post...", CREATOR-ID: 1, TAGS: "[\"postgresql\", \"hunchentoot\", \"lisp\", \"programming\"]", CREATED-AT: #<SIMPLE-DATE:TIMESTAMP 22-02-2025T09:31:40,016>, HIDDEN: NIL, UNLISTED: NIL>
-(defun fix-post (p)
- (setf (tags p) (parse (tags p)))
+(defun fix-post (p)
+ ;; let's coerce this array into list, #() is truthy according to lisp
+ (setf (tags p) (coerce (parse (tags p)) 'list))
(setf (creator p) (postmodern:get-dao 'murja.models.user:user (creator-id p)))
;; next-id and previous-id might point to unlisted posts. They should not do that, but I don't know how to wrangle *post-query* sql to support that, so they have to be fixed in lisp.
diff --git a/src/views/components/post.lisp b/src/views/components/post.lisp
index bab0a21..2e6f734 100644
--- a/src/views/components/post.lisp
+++ b/src/views/components/post.lisp
@@ -1,6 +1,6 @@
(defpackage murja.views.components.post
(:use :cl :murja.newui :cl-hash-util :binding-arrows :murja.models.user )
- (:import-from :murja.models.post :post-id :post-title :creator :created-at :article :previous-post-id :next-post-id)
+ (:import-from :murja.models.post :post-id :post-title :creator :created-at :article :previous-post-id :next-post-id :tags)
(:export :post))
(in-package :murja.views.components.post)
@@ -19,6 +19,16 @@
(created-at post))))
(c :section (:class "content") (article post))
+
+ (when (tags post)
+ (component :ul (:class "tags")
+ (map 'list
+ (lambda (tag)
+ (c :li ()
+ (c :a (:href (format nil "/blog/tags/~a" tag)
+ :class "tag")
+ (format nil "~a, " tag))))
+ (tags post))))
(when (and show-footer?
(or (not (equalp -1 (previous-post-id post)))