6131cd63 |
(defpackage :fwoar.rss-render
(:use :cl )
(:export
#:summary))
(in-package :fwoar.rss-render)
|
aa626761 |
(defmacro if-arg-not-nil ((op arg))
(alexandria:once-only (arg)
`(when ,arg
(,op ,arg))))
(defmethod alimenta.render:render-feed ((feed alimenta.rss:rss-feed) (renderer fwoar.rss-reader:feed-reference))
(plump:parse
(spinneret:with-html-string
(:div.feed
(:section
(:h2.title (if-arg-not-nil
(plump:decode-entities
(alimenta:title feed))))
(:p.description (if-arg-not-nil
(plump:decode-entities
(alimenta:description feed)))))
(:ul.items)))))
(defmethod alimenta.render:render-feed ((feed alimenta.atom::atom-feed) (renderer fwoar.rss-reader:feed-reference))
|
6131cd63 |
(plump:parse
(spinneret:with-html-string
(:div.feed
(:section
|
aa626761 |
(:h2.title (if-arg-not-nil
(plump:decode-entities
(alimenta:title feed)))))
|
6131cd63 |
(:ul.items)))))
|
aa626761 |
(defmethod alimenta.render:render-item (item feed (renderer fwoar.rss-reader:feed-reference))
|
6131cd63 |
(plump:first-element
(plump:parse
(spinneret:with-html-string
|
46f06681 |
(:li (:a :data-ic-push-url "true"
:data-ic-get-from (format nil "/f/~a/~a"
(fwoar.rss-reader::feed-key renderer)
(fwoar.rss-reader::id->slug (alimenta:id item)))
|
8fb5d955 |
:href (format nil "/f/~a/~a"
(fwoar.rss-reader::feed-key renderer)
(fwoar.rss-reader::id->slug (alimenta:id item)))
|
46f06681 |
(plump:decode-entities
(alimenta:title item)))
(:p.description
(let ((description (fwoar.rss-reader:prepare-feed-item-description renderer item)))
(when description
(plump:decode-entities
description)))))))))
|
6131cd63 |
|
aa626761 |
(defmethod alimenta.render:add-rendered-item (feed-r item-r (renderer fwoar.rss-reader:feed-reference))
|
6131cd63 |
(lquery:$
(inline feed-r)
".items"
(append item-r))
feed-r)
|