mirror of https://github.com/logseq/logseq
Merge branch 'feat/outliner-core' of github.com:logseq/logseq into feat/outliner-core
commit
e31dee1b60
|
@ -1656,8 +1656,7 @@
|
||||||
(:block/uuid child)))))])
|
(:block/uuid child)))))])
|
||||||
|
|
||||||
(when ref?
|
(when ref?
|
||||||
(let [children (-> (db/get-block-immediate-children repo uuid)
|
(let [children (db/get-block-immediate-children repo uuid)
|
||||||
db/sort-by-pos)
|
|
||||||
children (block-handler/filter-blocks repo children (:filters config) false)]
|
children (block-handler/filter-blocks repo children (:filters config) false)]
|
||||||
(when (seq children)
|
(when (seq children)
|
||||||
[:div.ref-children.ml-12
|
[:div.ref-children.ml-12
|
||||||
|
|
|
@ -198,8 +198,7 @@
|
||||||
[?block :block/meta ?meta]
|
[?block :block/meta ?meta]
|
||||||
[(?pred $ ?meta)]]
|
[(?pred $ ?meta)]]
|
||||||
(conn/get-conn repo-url) file-id pred)
|
(conn/get-conn repo-url) file-id pred)
|
||||||
db-utils/seq-flatten
|
db-utils/seq-flatten))))
|
||||||
db-utils/sort-by-pos))))
|
|
||||||
|
|
||||||
(defn get-file-after-blocks-meta
|
(defn get-file-after-blocks-meta
|
||||||
([repo-url file-id end-pos]
|
([repo-url file-id end-pos]
|
||||||
|
@ -212,9 +211,8 @@
|
||||||
'[:block/uuid :block/meta :block/content :block/level]
|
'[:block/uuid :block/meta :block/content :block/level]
|
||||||
'[:block/uuid :block/meta])
|
'[:block/uuid :block/meta])
|
||||||
blocks (db-utils/pull-many repo-url ks eids)]
|
blocks (db-utils/pull-many repo-url ks eids)]
|
||||||
(->> (filter (fn [{:block/keys [meta]}]
|
(filter (fn [{:block/keys [meta]}]
|
||||||
(>= (:start-pos meta) end-pos)) blocks)
|
(>= (:start-pos meta) end-pos)) blocks))))
|
||||||
db-utils/sort-by-pos))))
|
|
||||||
|
|
||||||
(defn get-file-pages
|
(defn get-file-pages
|
||||||
[repo-url path]
|
[repo-url path]
|
||||||
|
@ -379,9 +377,8 @@
|
||||||
|
|
||||||
(defn page-blocks-transform
|
(defn page-blocks-transform
|
||||||
[repo-url result]
|
[repo-url result]
|
||||||
(let [result (db-utils/seq-flatten result)
|
(let [result (db-utils/seq-flatten result)]
|
||||||
sorted (db-utils/sort-by-pos result)]
|
(->> (db-utils/with-repo repo-url result)
|
||||||
(->> (db-utils/with-repo repo-url sorted)
|
|
||||||
(with-block-refs-count repo-url))))
|
(with-block-refs-count repo-url))))
|
||||||
|
|
||||||
(defn sort-blocks
|
(defn sort-blocks
|
||||||
|
@ -394,7 +391,7 @@
|
||||||
(assoc block :block/page
|
(assoc block :block/page
|
||||||
(get pages-map (:db/id (:block/page block)))))
|
(get pages-map (:db/id (:block/page block)))))
|
||||||
blocks)]
|
blocks)]
|
||||||
(db-utils/sort-by-pos blocks)))
|
blocks))
|
||||||
|
|
||||||
(defn get-marker-blocks
|
(defn get-marker-blocks
|
||||||
[repo-url marker]
|
[repo-url marker]
|
||||||
|
@ -410,7 +407,6 @@
|
||||||
marker)
|
marker)
|
||||||
react
|
react
|
||||||
db-utils/seq-flatten
|
db-utils/seq-flatten
|
||||||
db-utils/sort-by-pos
|
|
||||||
(db-utils/with-repo repo-url)
|
(db-utils/with-repo repo-url)
|
||||||
(with-block-refs-count repo-url)
|
(with-block-refs-count repo-url)
|
||||||
(sort-blocks)
|
(sort-blocks)
|
||||||
|
@ -592,7 +588,6 @@
|
||||||
[result repo-url block-uuid level]
|
[result repo-url block-uuid level]
|
||||||
(some->> result
|
(some->> result
|
||||||
db-utils/seq-flatten
|
db-utils/seq-flatten
|
||||||
db-utils/sort-by-pos
|
|
||||||
(take-while (fn [h]
|
(take-while (fn [h]
|
||||||
(or
|
(or
|
||||||
(= (:block/uuid h)
|
(= (:block/uuid h)
|
||||||
|
@ -616,18 +611,32 @@
|
||||||
rules)
|
rules)
|
||||||
(apply concat)))))
|
(apply concat)))))
|
||||||
|
|
||||||
|
(defn- sort-by-left
|
||||||
|
[blocks]
|
||||||
|
(assert (= (count blocks) (count (set (map :block/left blocks)))) "Each block should have a different left node")
|
||||||
|
(let [left->blocks (reduce (fn [acc b] (assoc acc (:db/id (:block/left b)) b)) {} blocks)
|
||||||
|
start (get left->blocks nil)]
|
||||||
|
(if start
|
||||||
|
(loop [block start
|
||||||
|
result [start]]
|
||||||
|
(if-let [next (get left->blocks (:db/id block))]
|
||||||
|
(recur next (conj result next))
|
||||||
|
result))
|
||||||
|
(throw "Can't find the start block when sort-by-left"))))
|
||||||
|
|
||||||
(defn get-block-immediate-children
|
(defn get-block-immediate-children
|
||||||
"Doesn't include nested children."
|
"Doesn't include nested children."
|
||||||
[repo block-uuid]
|
[repo block-uuid]
|
||||||
(when-let [conn (conn/get-conn repo)]
|
(when-let [conn (conn/get-conn repo)]
|
||||||
(d/q
|
(-> (d/q
|
||||||
'[:find [(pull ?b [*]) ...]
|
'[:find [(pull ?b [*]) ...]
|
||||||
:in $ ?parent-id
|
:in $ ?parent-id
|
||||||
:where
|
:where
|
||||||
[?b :block/parent ?parent]
|
[?b :block/parent ?parent]
|
||||||
[?parent :block/uuid ?parent-id]]
|
[?parent :block/uuid ?parent-id]]
|
||||||
conn
|
conn
|
||||||
block-uuid)))
|
block-uuid)
|
||||||
|
sort-by-left)))
|
||||||
|
|
||||||
(defn get-block-children
|
(defn get-block-children
|
||||||
"Including nested children."
|
"Including nested children."
|
||||||
|
|
|
@ -249,7 +249,7 @@
|
||||||
(for [{:block/keys [ref-blocks]} blocks]
|
(for [{:block/keys [ref-blocks]} blocks]
|
||||||
(map (fn [ref-block]
|
(map (fn [ref-block]
|
||||||
[:block/refed-blocks (last ref-block)])
|
[:block/refed-blocks (last ref-block)])
|
||||||
ref-blocks))))
|
ref-blocks))))
|
||||||
(distinct))
|
(distinct))
|
||||||
refed-pages (map
|
refed-pages (map
|
||||||
(fn [[k page-id]]
|
(fn [[k page-id]]
|
||||||
|
|
Loading…
Reference in New Issue