|
|
@@ -452,53 +452,6 @@
|
|
|
with-block-refs
|
|
|
(update :refs (fn [col] (remove nil? col)))))
|
|
|
|
|
|
-(defn- with-path-refs
|
|
|
- [blocks]
|
|
|
- (loop [blocks blocks
|
|
|
- acc []
|
|
|
- parents []]
|
|
|
- (if (empty? blocks)
|
|
|
- acc
|
|
|
- (let [block (first blocks)
|
|
|
- cur-level (:block/level block)
|
|
|
- level-diff (- cur-level
|
|
|
- (get (last parents) :block/level 0))
|
|
|
- [path-refs parents]
|
|
|
- (cond
|
|
|
- (zero? level-diff) ; sibling
|
|
|
- (let [path-refs (mapcat :block/refs (drop-last parents))
|
|
|
- parents (conj (vec (butlast parents)) block)]
|
|
|
- [path-refs parents])
|
|
|
-
|
|
|
- (> level-diff 0) ; child
|
|
|
- (let [path-refs (mapcat :block/refs parents)]
|
|
|
- [path-refs (conj parents block)])
|
|
|
-
|
|
|
- (< level-diff 0) ; new parent
|
|
|
- (let [parents (vec (take-while (fn [p] (< (:block/level p) cur-level)) parents))
|
|
|
- path-refs (mapcat :block/refs parents)]
|
|
|
- [path-refs (conj parents block)]))
|
|
|
- path-ref-pages (->> path-refs
|
|
|
- (concat (:block/refs block))
|
|
|
- (map (fn [ref]
|
|
|
- (cond
|
|
|
- (map? ref)
|
|
|
- (:block/name ref)
|
|
|
-
|
|
|
- :else
|
|
|
- ref)))
|
|
|
- (remove string/blank?)
|
|
|
- (map (fn [ref]
|
|
|
- (if (string? ref)
|
|
|
- {:block/name (common-util/page-name-sanity-lc ref)}
|
|
|
- ref)))
|
|
|
- (remove vector?)
|
|
|
- (remove nil?)
|
|
|
- (distinct))]
|
|
|
- (recur (rest blocks)
|
|
|
- (conj acc (assoc block :block/path-refs path-ref-pages))
|
|
|
- parents)))))
|
|
|
-
|
|
|
(defn- macro->block
|
|
|
"macro: {:name \"\" arguments [\"\"]}"
|
|
|
[macro]
|
|
|
@@ -562,7 +515,7 @@
|
|
|
(select-keys first-block [:block/format :block/page]))
|
|
|
blocks)
|
|
|
blocks)]
|
|
|
- (with-path-refs blocks)))
|
|
|
+ blocks))
|
|
|
|
|
|
(defn- with-heading-property
|
|
|
[properties markdown-heading? size]
|