Browse Source

fix: whiteboard name case issue

Peng Xiao 3 years ago
parent
commit
384fc95231

+ 5 - 1
deps/graph-parser/src/logseq/graph_parser/extract.cljc

@@ -225,7 +225,11 @@
         {:keys [pages blocks]} (gp-util/safe-read-string content)
         page-block (first pages)
         page-name (filepath->page-name file)
-        page-original-name (or (:block/original-name page-block) page-name)
+        page-original-name (-> (:block/original-name page-block)
+                               (#(cond (nil? %) page-name
+                                       (= (gp-util/page-name-sanity-lc %)
+                                          (gp-util/page-name-sanity-lc page-name)) page-name
+                                       :else %)))
         page-entity (build-page-entity (:block/properties page-block) file page-name page-original-name nil options)
         page-block (merge page-block page-entity (when-not (:block/uuid page-block) {:block/uuid (d/squuid)}))
         blocks (->> blocks

+ 0 - 3
deps/graph-parser/test/logseq/graph_parser/extract_test.cljs

@@ -74,11 +74,8 @@
       :block/format :markdown}),
     :pages
     ({:block/format :markdown,
-      :block/original-name "Foo"
       :block/properties {:title "my whiteboard foo"}})})
 
-(extract/extract-whiteboard-edn "/whiteboards/foo.edn" (pr-str foo-edn) {})
-
 (deftest test-extract-whiteboard-edn
   []
   (let [{:keys [pages blocks]} (extract/extract-whiteboard-edn "/whiteboards/foo.edn" (pr-str foo-edn) {})

+ 15 - 13
deps/graph-parser/test/logseq/graph_parser_test.cljs

@@ -15,7 +15,6 @@
       :block/format :markdown}),
     :pages
     ({:block/format :markdown,
-      :block/original-name "Foo"
       :block/properties {:title "my whiteboard foo"}})})
 
 (deftest parse-file
@@ -57,18 +56,21 @@
   
   (testing "parsing whiteboard page"
     (let [conn (ldb/start-conn)]
-      (graph-parser/parse-file conn "whiteboards/foo.edn" (pr-str foo-edn) {})
-      (is (= {:block/name "foo" :block/file {:file/path "whiteboards/foo.edn"}}
-             (let [blocks (d/q '[:find (pull ?b [* {:block/parent
-                                                    [:block/name
-                                                     {:block/file
-                                                      [:file/path]}]}])
-                                 :in $
-                                 :where [?b :block/content] [(missing? $ ?b :block/name)]]
-                               @conn)
-                   parent (:block/parent (ffirst blocks))]
-               parent))
-          "parsed block in the whiteboard page has correct parent page"))))
+      (graph-parser/parse-file conn "/whiteboards/Foo.edn" (pr-str foo-edn) {})
+      (let [blocks (d/q '[:find (pull ?b [* {:block/page
+                                             [:block/name
+                                              :block/original-name
+                                              {:block/file
+                                               [:file/path]}]}])
+                          :in $
+                          :where [?b :block/content] [(missing? $ ?b :block/name)]]
+                        @conn)
+            parent (:block/page (ffirst blocks))]
+        (is (= {:block/name "foo" 
+                :block/original-name "Foo"
+                :block/file {:file/path "/whiteboards/Foo.edn"}}
+               parent)
+            "parsed block in the whiteboard page has correct parent page")))))
 
 (defn- test-property-order [num-properties]
   (let [conn (ldb/start-conn)

+ 1 - 3
src/main/frontend/handler/whiteboard.cljs

@@ -54,10 +54,8 @@
     (merge block additional-props)))
 
 (defn- tldr-page->blocks-tx [page-name tldr-data]
-  (let [original-page-name page-name
-        page-name (util/page-name-sanity-lc page-name)
+  (let [page-name (util/page-name-sanity-lc page-name)
         page-block {:block/name page-name
-                    :block/original-name original-page-name
                     :block/whiteboard? true
                     :block/properties (dissoc tldr-data :shapes)}
         ;; todo: use get-paginated-blocks instead?