Browse Source

fix: import failed due to same page names

Tienson Qin 4 years ago
parent
commit
0e8f01c211
1 changed files with 9 additions and 7 deletions
  1. 9 7
      src/main/frontend/handler/extract.cljs

+ 9 - 7
src/main/frontend/handler/extract.cljs

@@ -164,11 +164,11 @@
   (when (seq files)
     (let [result (->> files
                       (map
-                        (fn [{:file/keys [path content]} contents]
-                          (println "Parsing : " path)
-                          (when content
-                            (let [utf8-content (utf8/encode content)]
-                              (extract-blocks-pages repo-url path content utf8-content)))))
+                       (fn [{:file/keys [path content]} contents]
+                         (println "Parsing : " path)
+                         (when content
+                           (let [utf8-content (utf8/encode content)]
+                             (extract-blocks-pages repo-url path content utf8-content)))))
                       (remove empty?))]
       (when (seq result)
         (let [[pages block-ids blocks] (apply map concat result)
@@ -176,9 +176,11 @@
                             (let [id (:block/uuid block)
                                   properties (get-in metadata [:block/properties id])]
                               (update block :block/properties merge properties)))
-                       blocks)
+                          blocks)
+              ;; To prevent "unique constraint" on datascript
+              pages-index (map #(select-keys % [:block/name]) pages)
               pages (util/distinct-by :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 #(set/intersection (set %) block-ids-set))) blocks)]
-          (apply concat [pages block-ids blocks]))))))
+          (apply concat [pages-index pages block-ids blocks]))))))