fix: some files might have wrong indentation at the beginning

pull/2489/head
Tienson Qin 2021-08-01 15:26:26 +08:00
parent fdaa887186
commit 2f6caed79e
3 changed files with 49 additions and 16 deletions

View File

@ -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!
[]

View File

@ -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'])))]

View File

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