瀏覽代碼

Merge branch 'master' into feat/pdf

charlie 4 年之前
父節點
當前提交
c08b30135c

+ 0 - 8
resources/css/common.css

@@ -724,14 +724,6 @@ li p:last-child,
   overflow-y: scroll;
 }
 
-.loader-reverse {
-    -webkit-animation: spin 2s infinite linear reverse;
-}
-
-.loader {
-    -webkit-animation: spin 2s infinite linear;
-}
-
 .canceled,
 .done {
   text-decoration: line-through;

+ 2 - 2
src/main/frontend/commands.cljs

@@ -424,8 +424,8 @@
 
 (defmulti handle-step first)
 
-(defmethod handle-step :editor/hook [[_ event {:keys [pid] :as payload}] format]
-  (plugin-handler/hook-plugin-editor event (merge payload {:format format :uuid (:block/uuid (state/get-edit-block))}) pid))
+(defmethod handle-step :editor/hook [[_ event {:keys [pid uuid] :as payload}] format]
+  (plugin-handler/hook-plugin-editor event (merge payload {:format format :uuid (or uuid (:block/uuid (state/get-edit-block)))}) pid))
 
 (defmethod handle-step :editor/input [[_ value option]]
   (when-let [input-id (state/get-edit-input-id)]

+ 5 - 0
src/main/frontend/components/block.css

@@ -279,6 +279,11 @@
   margin: 0.4em 0 0;
 }
 
+.block-ref .ls-block :is(h1, h2),
+.block-ref .editor-inner :is(.h1, .h2) {
+  border-bottom: none;
+}
+
 .document-mode .ls-block h1,
 .document-mode .editor-inner .h1 {
   margin: 0.67em 0;

+ 4 - 0
src/main/frontend/components/header.css

@@ -124,3 +124,7 @@ a.button:hover {
     opacity: 1;
     background: var(--ls-tertiary-background-color);
 }
+
+.is-mac.is-electron :is(.cp__header, .cp__right-sidebar-topbar) :is(button, .button, a) {
+    cursor: default !important;
+}

+ 2 - 2
src/main/frontend/components/repo.cljs

@@ -99,12 +99,12 @@
       (when-not (= repo config/local-repo)
         (if (and nfs-repo? (nfs-handler/supported?))
           (let [syncing? (state/sub :graph/syncing?)]
-            [:div.opacity-60.refresh.hover:opacity-100 {:class (if syncing? "loader-reverse" "initial")}
+            [:div.opacity-60.refresh.hover:opacity-100
              [:a.button
               {:on-click #(nfs-handler/refresh! repo refresh-cb)
                :title (str "Import files from the local directory: " (config/get-local-dir repo) ".\nVersion: "
                            version/version)}
-              svg/refresh]])
+              [:div {:class (if syncing? "animate-spin-reverse" "initial")} svg/refresh]]])
           (let [changed-files (state/sub [:repo/changed-files repo])
                 should-push? (seq changed-files)
                 git-status (state/sub [:git/status repo])

+ 11 - 1
src/main/frontend/date.cljs

@@ -25,14 +25,24 @@
 (defn journal-title-formatters
   []
   (conj
-   #{"MMM do, yyyy"
+   #{"do MMM yyyy"
+	   "do MMMM yyyy"
+     "MMM do, yyyy"
      "MMMM do, yyyy"
+     "E, dd-MM-yyyy"
+     "E, dd.MM.yyyy"
      "E, MM/dd/yyyy"
      "E, yyyy/MM/dd"
+     "EEE, dd-MM-yyyy"
+     "EEE, dd.MM.yyyy"
      "EEE, MM/dd/yyyy"
      "EEE, yyyy/MM/dd"
+     "EEEE, dd-MM-yyyy"
+     "EEEE, dd.MM.yyyy"
      "EEEE, MM/dd/yyyy"
      "EEEE, yyyy/MM/dd"
+     "dd-MM-yyyy"
+     "dd.MM.yyyy"
      "MM/dd/yyyy"
      "MM-dd-yyyy"
      "MM_dd_yyyy"

+ 3 - 1
src/main/frontend/extensions/sci.cljs

@@ -12,7 +12,9 @@
   [s]
   (try
     (sci/eval-string s {:bindings {'sum sum
-                                   'average average}})
+                                   'average average
+                                   'parseFloat js/parseFloat
+                                   'isNaN js/isNaN}})
     (catch js/Error e
       (println "Query: sci eval failed:")
       (js/console.error e))))

+ 5 - 22
src/main/frontend/handler/editor.cljs

@@ -26,6 +26,7 @@
             [frontend.handler.repo :as repo-handler]
             [frontend.handler.route :as route-handler]
             [frontend.handler.ui :as ui-handler]
+            [frontend.handler.export :as export]
             [frontend.image :as image]
             [frontend.modules.outliner.core :as outliner-core]
             [frontend.modules.outliner.tree :as tree]
@@ -1045,28 +1046,10 @@
         level-blocks-uuid-map (into {} (mapv (fn [b] [(:block/uuid b) b]) (vals level-blocks-map)))
         level-blocks (mapv (fn [uuid] (get level-blocks-uuid-map uuid)) block-ids*)
         tree (blocks-vec->tree level-blocks)
-        contents
-        (mapv (fn [block]
-                (let [header
-                      (if (= format :markdown)
-                        (str (string/join (repeat (- (:level block) 1) "\t")) "-")
-                        (string/join (repeat (:level block) "*")))]
-                  (str header " " (:block/content block) "\n")))
-              level-blocks)
-        content-without-properties
-        (mapv
-         (fn [content]
-           (let [ast (mldoc/->edn content (mldoc/default-config format))
-                 properties-loc
-                 (->> ast
-                      (filterv (fn [[[type _] loc]] (= type "Property_Drawer")))
-                      (mapv second)
-                      first)]
-             (if properties-loc
-               (utf8/delete! content (:start_pos properties-loc) (:end_pos properties-loc))
-               content)))
-         contents)]
-    [(string/join content-without-properties) tree]))
+        top-level-block-uuids (mapv :block/uuid (filterv #(not (vector? %)) tree))
+        exported-md-contents (mapv #(export/export-blocks-as-markdown repo % "spaces")
+                                   top-level-block-uuids)]
+    [(string/join "\n" (mapv string/trim-newline exported-md-contents)) tree]))
 
 (defn copy-selection-blocks
   []

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

@@ -38,7 +38,9 @@
            (let [vals (map #(get-in % [:block/properties f]) result)
                  int? (some integer? vals)]
              `(~'fn [~'b]
-               (~'let [~'result (~'get-in ~'b [:block/properties ~f])]
+               (~'let [~'result-str (~'get-in ~'b [:block/properties ~f])
+                       ~'result-num (~'parseFloat ~'result-str)
+                       ~'result (if (~'isNaN ~'result-num) ~'result-str ~'result-num)]
                 (~'or ~'result (~'when ~int? 0))))))
 
          :else

+ 12 - 14
src/main/frontend/ui.cljs

@@ -296,28 +296,26 @@
 (defn set-global-active-keystroke [val]
   (.setAttribute js/document.body "data-active-keystroke" val))
 
-(defn clear-global-active-keystroke []
-  (set-global-active-keystroke ""))
-
 (defn setup-active-keystroke! []
   (let [active-keystroke (atom #{})
-        handle-global-keystroke
-        (fn [down? e]
-          (let [handler (if down? conj disj)
-                keystroke e.key]
-            (swap! active-keystroke handler keystroke))
-          (set-global-active-keystroke (apply str (interpose "+" (vec @active-keystroke)))))
+        handle-global-keystroke (fn [down? e]
+                                  (let [handler (if down? conj disj)
+                                        keystroke e.key]
+                                    (swap! active-keystroke handler keystroke))
+                                  (set-global-active-keystroke (apply str (interpose "+" (vec @active-keystroke)))))
         keydown-handler (partial handle-global-keystroke true)
-        keyup-handler (partial handle-global-keystroke false)]
+        keyup-handler (partial handle-global-keystroke false)
+        clear-all #(do (set-global-active-keystroke "")
+                        (reset! active-keystroke #{}))]
     (.addEventListener js/window "keydown" keydown-handler)
     (.addEventListener js/window "keyup" keyup-handler)
-    (.addEventListener js/window "blur" clear-global-active-keystroke)
-    (.addEventListener js/window "visibilitychange" clear-global-active-keystroke)
+    (.addEventListener js/window "blur" clear-all)
+    (.addEventListener js/window "visibilitychange" clear-all)
     (fn []
       (.removeEventListener js/window "keydown" keydown-handler)
       (.removeEventListener js/window "keyup" keyup-handler)
-      (.removeEventListener js/window "blur" clear-global-active-keystroke)
-      (.removeEventListener js/window "visibilitychange" clear-global-active-keystroke))))
+      (.removeEventListener js/window "blur" clear-all)
+      (.removeEventListener js/window "visibilitychange" clear-all))))
 
 (defn on-scroll
   [node on-load on-top-reached]

+ 5 - 0
tailwind.config.js

@@ -34,6 +34,11 @@ module.exports = {
       yellow: colors.amber,
       orange: colors.orange,
       rose: colors.rose
+    },
+    extend: {
+      animation: {
+        'spin-reverse': 'spin 2s linear infinite reverse',
+      }
     }
   }
 }