commit - 0ae518ce1867e6369d05fb920faf803eafd21c09
commit + 441c3bcdcc1b984c1f0edfb3c74a441573dd3d88
blob - 49ce9f72c03daca1f4bd3b129c88b555f1b056d3
blob + b3778b2f511415da3fb9fddb13b68469eb754eef
--- src/blog/core.clj
+++ src/blog/core.clj
(viewfn tag posts)))
(defn render-rss []
- (spit (str "resources/out/gemini/rss.xml")
- (rss/feed #(str "gemini://gemini.omarpolo.com/post/" % ".gmi")
- (->> @posts
- (filter gemini-post)
- (map #(dissoc % :body)))))
+ (let [gemposts (->> @posts
+ (filter gemini-post)
+ (map #(dissoc % :body)))]
+ (spit (str "resources/out/gemini/rss.xml")
+ (rss/feed #(str "gemini://gemini.omarpolo.com/post/" % ".gmi")
+ gemposts))
+ (spit (str "resources/out/gemini/rss.gmi")
+ (gemini/feed-page gemposts)))
(spit (str "resources/out/http/rss.xml")
(rss/feed #(str "https://www.omarpolo.com/post/" % ".html") @posts)))
blob - 30d1f39a9e4e027b5ab082b07246e8129cff4171
blob + e5628966368b1b9755ef2c6480b4a06e90c167b7
--- src/blog/gemini.clj
+++ src/blog/gemini.clj
[blog.time :as time]
[blog.gemtext :as gemtext]))
+(defn feed-page [posts]
+ (gemtext/unparse
+ (list
+ [:h1 "yumh"]
+ [:blockquote "Writing about things, sometimes"]
+ [:paragraph ""]
+ (for [post posts]
+ (let [{:keys [title date slug]} post
+ url (str "gemini://gemini.omarpolo.com/post/" slug ".gmi")]
+ [:link url (str (time/fmt-iso8601 date) " " title)])))))
+
(defn with-page [_ & body]
(gemtext/unparse
(list
blob - d1841ca09e58e2a83defde3f7c565fde34671af4
blob + 428495b3be602bd744157d2438495a5cf5635bf7
--- src/blog/time.clj
+++ src/blog/time.clj
(str (.format d pattern)
" 00:00:00 GMT")))
+(defn fmt-iso8601 [d]
+ ;; quoted to indicate UTC, not TZ offset. Also, HH:mm is 00:00
+ ;; because i'm parsing the raw date as LocalDate and not datetime,
+ ;; so there isn't the info about the hour and the minute.
+ (let [pattern (DateTimeFormatter/ofPattern "yyyy-MM-dd'T'00:00'Z'")]
+ (.format d pattern)))
+
(defn parse [s]
(LocalDate/parse s pattern))