Просмотр исходного кода

fix: import of namespace tags

w/ 2+ levels of namespaces. This should fix
https://github.com/logseq/db-test/issues/679
Gabriel Horner 1 неделя назад
Родитель
Сommit
e7bfd53a7c

+ 1 - 0
deps/db/src/logseq/db.cljs

@@ -596,6 +596,7 @@
 (def get-all-properties db-db/get-all-properties)
 (def get-class-extends db-class/get-class-extends)
 (def get-classes-parents db-db/get-classes-parents)
+(def get-page-parents db-db/get-page-parents)
 (def get-title-with-parents db-db/get-title-with-parents)
 (def class-instance? db-db/class-instance?)
 (def inline-tag? db-db/inline-tag?)

+ 6 - 3
deps/graph-parser/src/logseq/graph_parser/exporter.cljs

@@ -133,9 +133,12 @@
               db
               (ns-util/get-last-part full-name))
          (map #(d/entity db %))
-         (some #(let [parents (->> (ldb/get-class-extends %)
-                                   (remove (fn [e] (= :logseq.class/Root (:db/ident e))))
-                                   vec)]
+         (some #(let [parent (->> (ldb/get-class-extends %)
+                                  (remove (fn [e] (= :logseq.class/Root (:db/ident e))))
+                                  first)
+                      parent-ancestors (when parent (ldb/get-page-parents parent))
+                      parents (cond-> (or parent-ancestors [])
+                                parent (conj parent))]
                   (when (= full-name (string/join ns-util/namespace-char (map :block/name (conj parents %))))
                     (:block/uuid %)))))
     (first

+ 2 - 2
deps/graph-parser/test/logseq/graph_parser/exporter_test.cljs

@@ -210,7 +210,7 @@
 
       ;; Counts
       ;; Includes journals as property values e.g. :logseq.property/deadline
-      (is (= 31 (count (d/q '[:find ?b :where [?b :block/tags :logseq.class/Journal]] @conn))))
+      (is (= 32 (count (d/q '[:find ?b :where [?b :block/tags :logseq.class/Journal]] @conn))))
 
       (is (= 5 (count (d/q '[:find ?b :where [?b :block/tags :logseq.class/Asset]] @conn))))
       (is (= 4 (count (d/q '[:find ?b :where [?b :block/tags :logseq.class/Task]] @conn))))
@@ -231,7 +231,7 @@
                   #_(map #(select-keys % [:block/title :block/tags]))
                   count))
           "Correct number of pages with block content")
-      (is (= 14 (->> @conn
+      (is (= 15 (->> @conn
                      (d/q '[:find [?ident ...]
                             :where [?b :block/tags :logseq.class/Tag] [?b :db/ident ?ident] (not [?b :logseq.property/built-in?])])
                      count))

+ 2 - 1
deps/graph-parser/test/resources/exporter-test-graph/journals/2025_12_17.md

@@ -1,4 +1,5 @@
 tags:: #diary
 - This journal has a tag to test journals with tags
 - Block tags #p1
-  tags:: ai, #block-tag
+  tags:: ai, #block-tag
+- block w/ longer ns tag #n1/n2/n3

+ 1 - 0
deps/graph-parser/test/resources/exporter-test-graph/journals/2026_01_27.md

@@ -0,0 +1 @@
+- 2nd instance of block w/ longer ns tag #n1/n2/n3