diff options
-rw-r--r-- | web/panettone/src/css.lisp | 10 | ||||
-rw-r--r-- | web/panettone/src/panettone.lisp | 25 |
2 files changed, 23 insertions, 12 deletions
diff --git a/web/panettone/src/css.lisp b/web/panettone/src/css.lisp index 0192b816ea1c..40fa854eda16 100644 --- a/web/panettone/src/css.lisp +++ b/web/panettone/src/css.lisp @@ -77,7 +77,11 @@ (.comment-info :color ,color/gray :margin 0 - :padding-top "1rem") + :padding-top "1rem" + + (a :text-decoration "none") + ((:and a :hover) + :text-decoration "underline")) ((:or .comment .event) :padding-top "1rem" @@ -86,6 +90,10 @@ (p :margin 0)) + ((:and (:or .comment .event) :target) + :border-color ,color/primary + :border-bottom-width "3px") + (.event :color ,color/gray)))) diff --git a/web/panettone/src/panettone.lisp b/web/panettone/src/panettone.lisp index dc3a1cc29547..d70110ef54df 100644 --- a/web/panettone/src/panettone.lisp +++ b/web/panettone/src/panettone.lisp @@ -272,23 +272,26 @@ (defgeneric render/issue-history-item (item)) (defmethod render/issue-history-item ((comment model:issue-comment)) - (who:with-html-output (*standard-output*) - (who:htm - (:li - :class "comment" - (:p (who:str (body comment))) - (:p - :class "comment-info" - (:span :class "username" - (who:esc (displayname (author comment))) - " at " - (who:esc (format-dottime (created-at comment))))))))) + (let ((fragment (format nil "comment-~A" (id comment)))) + (who:with-html-output (*standard-output*) + (:li + :class "comment" + :id fragment + (:p (who:str (body comment))) + (:p + :class "comment-info" + (:span :class "username" + (who:esc (displayname (author comment))) + " at " + (:a :href (concatenate 'string "#" fragment) + (who:esc (format-dottime (created-at comment)))))))))) (defmethod render/issue-history-item ((event model:issue-event)) (let ((user (find-user-by-dn (acting-user-dn event)))) (who:with-html-output (*standard-output*) (:li :class "event" + :id (who:esc (displayname user)) (if (string= (field event) "STATUS") (who:htm |