add page margin option support. clean up page option -> css rendering
This commit is contained in:
parent
823c8f0e7c
commit
78979fd747
|
@ -46,24 +46,43 @@
|
||||||
(defn ->page-size-css
|
(defn ->page-size-css
|
||||||
[{:keys [size orientation] :as page-options}]
|
[{:keys [size orientation] :as page-options}]
|
||||||
(if (or size orientation)
|
(if (or size orientation)
|
||||||
(string/trim
|
[[:size
|
||||||
(str
|
(string/trim
|
||||||
(cond
|
(str
|
||||||
(keyword? size) (name size)
|
(cond
|
||||||
(sequential? size) (string/join " " size)
|
(keyword? size) (name size)
|
||||||
:else size)
|
(sequential? size) (string/join " " size)
|
||||||
" "
|
:else size)
|
||||||
(if (keyword? orientation)
|
" "
|
||||||
(name orientation)
|
(if (keyword? orientation)
|
||||||
orientation)))))
|
(name orientation)
|
||||||
|
orientation)))]]))
|
||||||
|
|
||||||
|
(defn ->page-margin-css
|
||||||
|
[{:keys [margin] :as page-options}]
|
||||||
|
(let [default-margin (get-in default-options [:page :margin])]
|
||||||
|
(cond
|
||||||
|
(map? margin)
|
||||||
|
[[:margin-left (or (:left margin) default-margin)]
|
||||||
|
[:margin-top (or (:top margin) default-margin)]
|
||||||
|
[:margin-right (or (:right margin) default-margin)]
|
||||||
|
[:margin-bottom (or (:bottom margin) default-margin)]]
|
||||||
|
|
||||||
|
(sequential? margin)
|
||||||
|
[[:margin (string/join " " margin)]]
|
||||||
|
|
||||||
|
:else
|
||||||
|
[[:margin (str (or margin default-margin))]])))
|
||||||
|
|
||||||
(defn page-options->css
|
(defn page-options->css
|
||||||
[page-options]
|
[page-options]
|
||||||
(let [styles (->> [[:size (->page-size-css page-options)]]
|
(let [page-options (merge (:page default-options) page-options)]
|
||||||
(into [])
|
[["@page"
|
||||||
(remove #(nil? (second %)))
|
(->> (concat
|
||||||
(reduce #(assoc %1 (first %2) (second %2)) {}))]
|
(->page-size-css page-options)
|
||||||
[["@page" styles]]))
|
(->page-margin-css page-options))
|
||||||
|
(remove #(nil? (second %)))
|
||||||
|
(reduce #(assoc %1 (first %2) (second %2)) {}))]]))
|
||||||
|
|
||||||
(defn append-stylesheet-link-tags!
|
(defn append-stylesheet-link-tags!
|
||||||
[^Element parent stylesheets]
|
[^Element parent stylesheets]
|
||||||
|
|
Loading…
Reference in a new issue