commit fe64383e20f07dd33bf3025a920ef645bf163145 from: Omar Polo date: Wed Oct 14 08:54:41 2020 UTC [www] improve header and correctly link images commit - 9a594f34e404808b18d04a4ad36f77f36b6da245 commit + fe64383e20f07dd33bf3025a920ef645bf163145 blob - 6393d3b55d7c1e0098b5a3a200516fc75c79399e blob + 6792c4acdc168647b54a66b6c2d76af3a09b2b07 --- src/blog/http.clj +++ src/blog/http.clj @@ -7,10 +7,12 @@ [hiccup.page :refer [html5 include-css]] [commonmark-hiccup.core :refer [markdown->hiccup default-config]])) -(defn link-item [{:keys [url text]}] - [:li [:a {:href url} text]]) +(defn link-item [{:keys [url text title]}] + [:li [:a (cond-> {:href url} + title (assoc :title title)) + text]]) -(defn header [{:keys [tags]}] +(defn header [{:keys [skip-banner?]}] (list [:header [:nav @@ -18,13 +20,15 @@ (link-item {:url "/", :text "Home"}) (link-item {:url "/tags.html", :text "All Tags"}) (link-item {:url "/pages/projects.html", :text "Projects"}) - (link-item {:url "gemini://gemini.omarpolo.com" :text "gemini://"})]] - [:div - [:h1 [:a {:href "/"} "yumh"]] - [:p "writing about things, sometimes."]]])) + (link-item {:url "gemini://gemini.omarpolo.com" :text "gemini://" + :title "This website in the gemini space."})]] + (when-not skip-banner? + [:div + [:h1 [:a {:href "/"} "yumh"]] + [:p "writing about things, sometimes."]])])) (defn with-page - [{:keys [title class description], :as d} & body] + [{:keys [title class description skip-banner?], :as d} & body] (html5 {:lang "en"} [:head [:meta {:charset "utf8"}] @@ -53,6 +57,19 @@ :async true :src "//goatcounter.omarpolo.com/count.js"}]])) +(defn link->images + "traverse `doc` and replace every link to an image to an `img` tag." + [doc] + (walk/prewalk + (fn [item] + (if-not (and (vector? item) (= (first item) :a)) + item + (let [[_ {:keys [href] :as attrs} text] item] + [:p + [:a attrs + [:img {:src href + :alt text}]]]))))) + (defn post-fragment [{:keys [full? title-with-link?]} {:keys [title date slug tags short body toot music xkcd gemtext?], :as post}] @@ -109,7 +126,8 @@ "Older Posts ยป"])])) (defn custom-page [{:keys [title body]}] - (with-page {:title title} + (with-page {:title title + :skip-banner? true} ;; warning: hack ahead (walk/prewalk (fn [item]