mirror of https://github.com/logseq/logseq
fix: some files might have wrong indentation at the beginning
parent
fdaa887186
commit
2f6caed79e
|
@ -29,6 +29,25 @@
|
|||
count-1
|
||||
(- count-1 count-2)))))
|
||||
|
||||
(defn block-uuid-nil?
|
||||
[block]
|
||||
(->>
|
||||
(concat
|
||||
[(:block/parent block)
|
||||
(:block/left block)
|
||||
(:block/page block)
|
||||
(:block/namespace block)]
|
||||
(:block/tags block)
|
||||
(:block/alias block)
|
||||
(:block/refs block)
|
||||
(:block/path-refs block))
|
||||
(remove nil?)
|
||||
(some (fn [x]
|
||||
(and
|
||||
(vector? x)
|
||||
(= :block/uuid (first x))
|
||||
(nil? (second x)))))))
|
||||
|
||||
(comment
|
||||
(defn debug!
|
||||
[]
|
||||
|
|
|
@ -677,11 +677,16 @@
|
|||
(let [[f r] (split-with (fn [p] (<= (:block/level-spaces p) level-spaces)) parents)
|
||||
left (first r)
|
||||
parents' (->> (concat f [left]) vec)
|
||||
block (assoc block
|
||||
:block/parent [:block/uuid (:block/uuid (last f))]
|
||||
:block/left [:block/uuid (:block/uuid left)]
|
||||
:block/level (:block/level left)
|
||||
:block/level-spaces (:block/level-spaces left))
|
||||
parent-id (if-let [block-id (:block/uuid (last f))]
|
||||
[:block/uuid block-id]
|
||||
page-id)
|
||||
block (cond->
|
||||
(assoc block
|
||||
:block/parent parent-id
|
||||
:block/left [:block/uuid (:block/uuid left)]
|
||||
:block/level (:block/level left)
|
||||
:block/level-spaces (:block/level-spaces left)))
|
||||
|
||||
parents' (->> (concat f [block]) vec)
|
||||
result' (conj result block)]
|
||||
[others parents' block result'])))]
|
||||
|
|
|
@ -130,9 +130,11 @@
|
|||
;; remove block references
|
||||
(remove vector?))
|
||||
pages (util/distinct-by :block/name pages)
|
||||
block-ids (mapv (fn [block]
|
||||
{:block/uuid (:block/uuid block)})
|
||||
(remove nil? blocks))
|
||||
block-ids (->>
|
||||
(mapv (fn [block]
|
||||
{:block/uuid (:block/uuid block)})
|
||||
(remove nil? blocks))
|
||||
(remove nil?))
|
||||
pages (remove nil? pages)
|
||||
pages (map (fn [page] (assoc page :block/uuid (db/new-block-id))) pages)]
|
||||
[pages
|
||||
|
@ -189,6 +191,18 @@
|
|||
(map (partial apply merge))
|
||||
(with-block-uuid))))
|
||||
|
||||
(defn- remove-illegal-refs
|
||||
[block block-ids-set refresh?]
|
||||
(let [aux-fn (fn [refs]
|
||||
(let [block-refs (if refresh? (set refs)
|
||||
(set/intersection (set refs) block-ids-set))]
|
||||
(set/union
|
||||
(filter :block/name refs)
|
||||
block-refs)))]
|
||||
(-> block
|
||||
(update :block/refs aux-fn)
|
||||
(update :block/path-refs aux-fn))))
|
||||
|
||||
(defn extract-all-blocks-pages
|
||||
[repo-url files metadata refresh?]
|
||||
(when (seq files)
|
||||
|
@ -207,6 +221,8 @@
|
|||
(remove empty?))]
|
||||
(when (seq result)
|
||||
(let [[pages block-ids blocks] (apply map concat result)
|
||||
block-ids (remove (fn [b] (or (nil? b)
|
||||
(nil? (:block/uuid b)))) block-ids)
|
||||
pages (with-ref-pages pages blocks)
|
||||
blocks (map (fn [block]
|
||||
(let [id (:block/uuid block)
|
||||
|
@ -216,12 +232,5 @@
|
|||
;; To prevent "unique constraint" on datascript
|
||||
pages-index (map #(select-keys % [:block/name]) pages)
|
||||
block-ids-set (set (map (fn [{:block/keys [uuid]}] [:block/uuid uuid]) block-ids))
|
||||
blocks (map (fn [b]
|
||||
(update b :block/refs
|
||||
(fn [refs]
|
||||
(let [block-refs (if refresh? (set refs)
|
||||
(set/intersection (set refs) block-ids-set))]
|
||||
(set/union
|
||||
(filter :block/name refs)
|
||||
block-refs))))) blocks)]
|
||||
blocks (map #(remove-illegal-refs % block-ids-set refresh?) blocks)]
|
||||
(apply concat [pages-index pages block-ids blocks]))))))
|
||||
|
|
Loading…
Reference in New Issue