add support for quickly inserting page numbers into margin-boxes

This commit is contained in:
Gered 2017-04-02 18:42:56 -04:00
parent 48cfa584f5
commit 71df80e7dd

View file

@ -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