1
0
Эх сурвалжийг харах

fix: don't remove :block/tags from outliner-core/-save

Tienson Qin 1 жил өмнө
parent
commit
4e0a35fe87

+ 3 - 17
deps/outliner/src/logseq/outliner/core.cljs

@@ -340,7 +340,7 @@
                   (assoc (.-kv ^js data) :db/id (:db/id data))
                   data)
           m (-> data'
-                (dissoc :block/children :block/meta :block.temp/top? :block.temp/bottom?
+                (dissoc :block/children :block/meta :block.temp/top? :block.temp/bottom? :block/unordered
                         :block/title :block/body :block/level)
                 common-util/remove-nils
                 block-with-updated-at
@@ -351,23 +351,9 @@
           block-uuid (:block/uuid (:data this))
           eid (or db-id (when block-uuid [:block/uuid block-uuid]))
           block-entity (d/entity db eid)
-          m' (if (and (:block/content m) db-based?)
-               (update m :block/content
-                       (fn [content]
-                         (db-content/content-without-tags
-                          content
-                          (->>
-                           (map
-                            (fn [tag]
-                              (when (:block/uuid tag)
-                                (str db-content/page-ref-special-chars (:block/uuid tag))))
-                            (:block/tags m))
-                           (remove nil?)))))
-               m)
-          m (cond->> m'
+          m (cond->> m
               db-based?
-              (db-marker-handle conn))
-          m (if db-based? (dissoc m :block/tags) m)]
+              (db-marker-handle conn))]
 
       ;; Ensure block UUID never changes
       (when (and db-id block-uuid)

+ 15 - 8
src/main/frontend/handler/db_based/editor.cljs

@@ -79,19 +79,26 @@
                       first-elem-type (first (ffirst ast))
                       block-with-title? (mldoc/block-with-title? first-elem-type)
                       content' (str (config/get-block-pattern :markdown) (if block-with-title? " " "\n") content)
-                      block (merge block
-                                   (block/parse-block (assoc block :block/content content')))]
+                      block (block/parse-block (assoc block :block/content content'))]
                   (update block :block/refs remove-non-existed-refs!)))
         block (if (and left (not= (:block/left block) left)) (assoc block :block/left left) block)
         result (-> block
-                   (dissoc
-                    :block.temp/top?
-                    :block.temp/bottom?
-                    :block/unordered)
-                   (assoc :block/content content)
                    (merge (if level {:block/level level} {}))
                    (replace-page-refs-with-ids))]
-    result))
+    (-> result
+        ;; Remove tags from content
+        (assoc :block/content
+               (db-content/content-without-tags
+                (:block/content result)
+                (->>
+                 (map
+                  (fn [tag]
+                    (when (:block/uuid tag)
+                      (str db-content/page-ref-special-chars (:block/uuid tag))))
+                  (:block/tags result))
+                 (remove nil?))))
+        ;; Remove :block/tags built from mldoc
+        (dissoc :block/tags))))
 
 (defn save-file!
   "This fn is the db version of file-handler/alter-file"