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

fix: Disable mixed heading in unordered list for now

Tienson Qin 4 лет назад
Родитель
Сommit
f2dffd51fa

+ 1 - 0
src/main/frontend/db_schema.cljs

@@ -130,5 +130,6 @@
     :block/scheduled
     :block/deadline
     :block/repeated?
+    :block/pre-block?
     }
   )

+ 13 - 4
src/main/frontend/handler/editor.cljs

@@ -275,17 +275,26 @@
     block))
 
 (defn- wrap-parse-block
-  [{:block/keys [content format] :as block}]
+  [{:block/keys [content format parent page] :as block}]
   (let [ast (mldoc/->edn (string/trim content) (mldoc/default-config format))
         first-elem-type (first (ffirst ast))
         properties? (= "Properties" first-elem-type)
+        top-level? (= parent page)
         markdown-heading? (and (= format :markdown)
                                (= "Heading" first-elem-type))
         heading? (= "Paragraph" first-elem-type)
         content (string/triml content)
-        content' (if (or properties? markdown-heading?)
-                   content
-                   (str (config/get-block-pattern format) (if heading? " " "\n") content))
+        [content content'] (cond
+                             (or properties? (and markdown-heading? top-level?))
+                             [content content]
+
+                             markdown-heading?
+                             (let [content (string/replace content #"^#+\s+" "")]
+                               [content (str (config/get-block-pattern format) " " content)])
+
+                             :else
+                             (let [content' (str (config/get-block-pattern format) (if heading? " " "\n") content)]
+                               [content content']))
         block (block/parse-block (assoc block :block/content content'))
         block (attach-page-properties-if-exists! block)]
     (-> block

+ 2 - 2
src/main/frontend/handler/web/nfs.cljs

@@ -299,12 +299,12 @@
 (defn refresh!
   [repo ok-handler]
   (if (refactored-version?)
-    (rebuild-index! repo ok-handler)
     (when repo
       (state/set-nfs-refreshing! true)
       (p/let [_ (reload-dir! repo)
               _ (ok-handler)]
-        (state/set-nfs-refreshing! false)))))
+        (state/set-nfs-refreshing! false)))
+    (rebuild-index! repo ok-handler)))
 
 (defn supported?
   []

+ 8 - 3
src/main/frontend/modules/file/core.cljs

@@ -23,10 +23,15 @@
 (defn transform-content
   [{:block/keys [format pre-block? content unordered]} level]
   (let [content (or content "")]
-    (if (or pre-block?
-            (and (= format :markdown)
-                 (re-find #"#+\s+" content)))
+    (cond
+      pre-block?
+      (str (string/trim content) "\n")
+
+      (and (= format :markdown)
+           (re-find #"#+\s+" content))
       (string/trim content)
+
+      :else
       (let [[prefix spaces-tabs]
             (cond
               (= format :org)

+ 4 - 4
yarn.lock

@@ -3853,10 +3853,10 @@ mkdirp@^0.5.4, mkdirp@~0.5.1:
   dependencies:
     minimist "^1.2.5"
 
[email protected]3:
-  version "0.6.13"
-  resolved "https://registry.yarnpkg.com/mldoc/-/mldoc-0.6.13.tgz#bb8cba40ec512717e06e9dd4a668f4a05d479503"
-  integrity sha512-Vllx8zxUNB/M2FQJYHyuJ0096JOPhl1idAimp65Fk/vmMkG4DlMC/VWKCtaReHx8lOZ1uGFobkHMlvJOuyOsAA==
[email protected]4:
+  version "0.6.14"
+  resolved "https://registry.yarnpkg.com/mldoc/-/mldoc-0.6.14.tgz#de6728555ef0dd2a48e172e781ccc7c3a50e6954"
+  integrity sha512-w/diYIaI/oMBKmrH6/UkC4MXchQo/G+u02SQ1VvyqcDBtjsBcXi6nY0l0LTFDHn3Yaq3FbiNLgSq37RBD3MY6g==
   dependencies:
     yargs "^12.0.2"