add support for quickly inserting page numbers into margin-boxes
This commit is contained in:
parent
48cfa584f5
commit
71df80e7dd
|
@ -92,18 +92,29 @@
|
||||||
(if-not (string/blank? s)
|
(if-not (string/blank? s)
|
||||||
(str \" (string/replace s "\"" "\\\"") \")))
|
(str \" (string/replace s "\"" "\\\"") \")))
|
||||||
|
|
||||||
|
(defn parse-margin-box-paging-content
|
||||||
|
[paging-content]
|
||||||
|
(->> paging-content
|
||||||
|
(map
|
||||||
|
#(case %
|
||||||
|
:page (str "counter(page)")
|
||||||
|
:pages (str "counter(pages)")
|
||||||
|
(str (sanitize-margin-box-text %))))
|
||||||
|
(string/join " ")))
|
||||||
|
|
||||||
(defn ->page-margin-boxes-declaration-css
|
(defn ->page-margin-boxes-declaration-css
|
||||||
[{:keys [margin-box] :as page-options}]
|
[{:keys [margin-box] :as page-options}]
|
||||||
(mapv
|
(mapv
|
||||||
(fn [[box-name {:keys [text element content] :as box-properties}]]
|
(fn [[box-name {:keys [text element content paging] :as box-properties}]]
|
||||||
[(str "@" (name box-name))
|
[(str "@" (name box-name))
|
||||||
(merge
|
(merge
|
||||||
{:content
|
{:content
|
||||||
(cond
|
(cond
|
||||||
content content
|
content content
|
||||||
text (sanitize-margin-box-text text)
|
text (sanitize-margin-box-text text)
|
||||||
element (str "element(" (name box-name) ")"))}
|
element (str "element(" (name box-name) ")")
|
||||||
(dissoc box-properties :text :element :content))])
|
paging (parse-margin-box-paging-content (if (sequential? paging) paging [paging])))}
|
||||||
|
(dissoc box-properties :text :element :content :paging))])
|
||||||
margin-box))
|
margin-box))
|
||||||
|
|
||||||
(defn ->page-margin-boxes-running-element-css
|
(defn ->page-margin-boxes-running-element-css
|
||||||
|
|
Loading…
Reference in a new issue