diff --git a/doerg/src/net/deertopia/doerg/render.clj b/doerg/src/net/deertopia/doerg/render.clj index 788ef34..ee3b391 100644 --- a/doerg/src/net/deertopia/doerg/render.clj +++ b/doerg/src/net/deertopia/doerg/render.clj @@ -103,10 +103,16 @@ (sp/view #(update % :children seq)) sp/STAY)) +(defn center [& es] + [:div.center es]) + (defn doerg-attrs [e] (->> e :affiliated :attr_doerg (str/join " ") (format "{%s}") edn/read-string)) +(defn em [x] + (format "%.4fem" x)) + (defn wrap-if [x c f] (if c (f x) x)) @@ -337,8 +343,14 @@ [:span.latex-fragment.display-math (-> e ::rendered deref)]) -(defmethod org-element "example-block" [{:keys [value]}] - [:pre value]) +(defmethod org-element "example-block" [{:keys [value] :as e}] + (let [{:keys [center? alt scale img?]} (doerg-attrs e)] + (-> [:pre (merge (and img? {:role "img" + :aria-label alt + :title alt}) + (and scale {:style {:font-size (em scale)}})) + value] + (wrap-if center? center)))) (defmethod org-element "src-block" [{:keys [value]}] [:pre [:code value]])