浏览代码

Merge branch 'feat/db' into feat/capacitor-new

charlie 5 月之前
父节点
当前提交
dee490fdcd
共有 39 个文件被更改,包括 129 次插入460 次删除
  1. 2 54
      .github/workflows/build-desktop-release.yml
  2. 0 1
      .projectile
  3. 11 13
      deps/db/src/logseq/db/common/property_util.cljs
  4. 3 47
      deps/db/src/logseq/db/frontend/property.cljs
  5. 3 4
      deps/db/src/logseq/db/sqlite/create_graph.cljs
  6. 5 5
      deps/db/test/logseq/db/sqlite/build_test.cljs
  7. 18 19
      deps/graph-parser/src/logseq/graph_parser/exporter.cljs
  8. 0 2
      gulpfile.js
  9. 2 3
      src/main/frontend/commands.cljs
  10. 4 3
      src/main/frontend/common/graph_view.cljs
  11. 38 44
      src/main/frontend/components/block.cljs
  12. 4 0
      src/main/frontend/components/block.css
  13. 35 21
      src/main/frontend/components/block/macros.cljs
  14. 0 10
      src/main/frontend/components/page_menu.cljs
  15. 0 9
      src/main/frontend/components/right_sidebar.cljs
  16. 1 2
      src/main/frontend/db.cljs
  17. 0 129
      src/main/frontend/extensions/slide.cljs
  18. 0 39
      src/main/frontend/extensions/slide.css
  19. 1 12
      src/main/frontend/handler/db_based/property/util.cljs
  20. 0 6
      src/main/frontend/handler/editor.cljs
  21. 2 2
      src/main/frontend/util.cljc
  22. 0 2
      src/resources/dicts/ca.edn
  23. 0 2
      src/resources/dicts/cs.edn
  24. 0 2
      src/resources/dicts/de.edn
  25. 0 2
      src/resources/dicts/en.edn
  26. 0 2
      src/resources/dicts/es.edn
  27. 0 2
      src/resources/dicts/fa.edn
  28. 0 2
      src/resources/dicts/fr.edn
  29. 0 2
      src/resources/dicts/id.edn
  30. 0 2
      src/resources/dicts/it.edn
  31. 0 2
      src/resources/dicts/ja.edn
  32. 0 1
      src/resources/dicts/ko.edn
  33. 0 2
      src/resources/dicts/nb-no.edn
  34. 0 2
      src/resources/dicts/pl.edn
  35. 0 2
      src/resources/dicts/pt-br.edn
  36. 0 2
      src/resources/dicts/sk.edn
  37. 0 2
      src/resources/dicts/tr.edn
  38. 0 2
      src/resources/dicts/zh-cn.edn
  39. 0 2
      tailwind.all.css

+ 2 - 54
.github/workflows/build-desktop-release.yml

@@ -170,58 +170,6 @@ jobs:
         with:
         with:
           name: static
           name: static
           path: static
           path: static
-
-  e2e-test:
-    name: E2E Test Shard ${{ matrix.shard }}
-    runs-on: ubuntu-22.04
-    strategy:
-      matrix:
-        shard: [1, 2, 3]
-    needs: [ compile-cljs ]
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v3
-
-      - name: Download The Static Asset
-        uses: actions/download-artifact@v4
-        with:
-          name: static
-          path: static
-
-      - name: Set up Node
-        uses: actions/setup-node@v3
-        with:
-          node-version: ${{ env.NODE_VERSION }}
-          cache: 'yarn'
-          cache-dependency-path: |
-            yarn.lock
-            static/yarn.lock
-
-      - name: Fetch yarn deps for E2E test
-        run: |
-          yarn install
-          (cd static && yarn install && yarn rebuild:all)
-        env:
-          PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: true
-
-      - name: Install Fluxbox
-        run: sudo apt-get update && sudo apt-get install -y fluxbox
-
-      # Emulate a virtual framebuffer on machines with no display hardware
-      - name: Run XVFB
-        run: Xvfb :1 -screen 0 1024x768x24 >/dev/null 2>&1 &
-
-      # Start a lightweight window manager to simulate window actions (maximize,restore etc)
-      - name: Start Fluxbox
-        run:  DISPLAY=:1.0 fluxbox >/dev/null 2>&1 &
-
-      - name: Run Playwright test
-        run: DISPLAY=:1.0 npx playwright test --reporter github --shard=${{ matrix.shard }}/3
-        env:
-          LOGSEQ_CI: true
-          DEBUG: "pw:api"
-          RELEASE: true # skip dev only test
-
   build-linux-x64:
   build-linux-x64:
     runs-on: ubuntu-22.04
     runs-on: ubuntu-22.04
     needs: [ compile-cljs ]
     needs: [ compile-cljs ]
@@ -580,7 +528,7 @@ jobs:
 
 
   nightly-release:
   nightly-release:
     if: ${{ github.event_name == 'schedule' || github.event.inputs.build-target == 'nightly' }}
     if: ${{ github.event_name == 'schedule' || github.event.inputs.build-target == 'nightly' }}
-    needs: [ build-macos-x64, build-macos-arm64, build-linux-x64, build-linux-arm64, codesign-windows, build-android, e2e-test ]
+    needs: [ build-macos-x64, build-macos-arm64, build-linux-x64, build-linux-arm64, codesign-windows, build-android]
     runs-on: ubuntu-22.04
     runs-on: ubuntu-22.04
     steps:
     steps:
       - name: Download MacOS x64 Artifacts
       - name: Download MacOS x64 Artifacts
@@ -660,7 +608,7 @@ jobs:
   release:
   release:
     # NOTE: For now, we only have beta channel to be released on Github
     # NOTE: For now, we only have beta channel to be released on Github
     if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.build-target == 'beta' }}
     if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.build-target == 'beta' }}
-    needs: [ build-macos-x64, build-macos-arm64, build-linux-x64, build-linux-arm64, codesign-windows, build-android, e2e-test ]
+    needs: [ build-macos-x64, build-macos-arm64, build-linux-x64, build-linux-arm64, codesign-windows, build-android]
     runs-on: ubuntu-22.04
     runs-on: ubuntu-22.04
     steps:
     steps:
       - name: Download MacOS x64 Artifacts
       - name: Download MacOS x64 Artifacts

+ 0 - 1
.projectile

@@ -11,7 +11,6 @@
 -/resources/static/js/katex.min.js
 -/resources/static/js/katex.min.js
 -/resources/static/js/mhchem.min.js
 -/resources/static/js/mhchem.min.js
 -/resources/static/js/mldoc.min.js
 -/resources/static/js/mldoc.min.js
--/resources/static/js/reveal.js
 -/resources/static/js/sci.min.js
 -/resources/static/js/sci.min.js
 -/resources/static/js/excalidraw.min.js
 -/resources/static/js/excalidraw.min.js
 -/resources/static/js/react-force-graph.min.js
 -/resources/static/js/react-force-graph.min.js

+ 11 - 13
deps/db/src/logseq/db/common/property_util.cljs

@@ -1,30 +1,28 @@
 (ns logseq.db.common.property-util
 (ns logseq.db.common.property-util
   "Property related util fns. Fns used in both DB and file graphs should go here"
   "Property related util fns. Fns used in both DB and file graphs should go here"
   (:require [datascript.core :as d]
   (:require [datascript.core :as d]
-            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.sqlite.util :as sqlite-util]))
             [logseq.db.sqlite.util :as sqlite-util]))
 
 
-(defn- get-file-pid-by-ident
+(defn get-file-pid
+  "Gets file graph property id given the db graph ident"
   [db-ident]
   [db-ident]
-  (get-in db-property/built-in-properties [db-ident :name] (name db-ident)))
+  ;; Map of unique cases where the db graph keyword name is different than the file graph id
+  (let [unique-file-ids {:logseq.property/order-list-type :logseq.order-list-type
+                         :logseq.property.tldraw/page :logseq.tldraw.page
+                         :logseq.property.tldraw/shape :logseq.tldraw.shape
+                         :logseq.property/publishing-public? :public}]
+    (or (get unique-file-ids db-ident)
+        (keyword (name db-ident)))))
 
 
-;; TODO: refactor later to remove this fn
+;; TODO: replace repo with db later to remove this fn
 (defn get-pid
 (defn get-pid
   "Get a built-in property's id (keyword name for file graph and db-ident for db
   "Get a built-in property's id (keyword name for file graph and db-ident for db
   graph) given its db-ident. No need to use this fn in a db graph only context"
   graph) given its db-ident. No need to use this fn in a db graph only context"
   [repo db-ident]
   [repo db-ident]
   (if (sqlite-util/db-based-graph? repo)
   (if (sqlite-util/db-based-graph? repo)
     db-ident
     db-ident
-    (get-file-pid-by-ident db-ident)))
-
-(defn get-pid-2
-  "Get a built-in property's id (keyword name for file graph and db-ident for db
-  graph) given its db-ident. No need to use this fn in a db graph only context"
-  [db db-ident]
-  (if (entity-plus/db-based-graph? db)
-    db-ident
-    (get-file-pid-by-ident db-ident)))
+    (get-file-pid db-ident)))
 
 
 (defn lookup
 (defn lookup
   "Get the property value by a built-in property's db-ident from coll. For file and db graphs"
   "Get the property value by a built-in property's db-ident from coll. For file and db graphs"

+ 3 - 47
deps/db/src/logseq/db/frontend/property.cljs

@@ -12,7 +12,7 @@
 ;; Main property vars
 ;; Main property vars
 ;; ==================
 ;; ==================
 
 
-(def ^:large-vars/data-var built-in-properties*
+(def ^:large-vars/data-var built-in-properties
   "Map of built in properties for db graphs with their :db/ident as keys.
   "Map of built in properties for db graphs with their :db/ident as keys.
    Each property has a config map with the following keys:
    Each property has a config map with the following keys:
    TODO: Move some of these keys to :properties since :schema is a deprecated concept
    TODO: Move some of these keys to :properties since :schema is a deprecated concept
@@ -26,8 +26,6 @@
        seen in when :public? is set. Valid values are :page, :block and :never. Property can
        seen in when :public? is set. Valid values are :page, :block and :never. Property can
        be viewed in any context if not set
        be viewed in any context if not set
    * :title - Property's :block/title
    * :title - Property's :block/title
-   * :name - Property's :block/name as a keyword. If none given, one is derived from the db/ident.
-      TODO: This is barely used for old properties. Deprecate this and move to gp-exporter
    * :attribute - Property keyword that is saved to a datascript attribute outside of :block/properties
    * :attribute - Property keyword that is saved to a datascript attribute outside of :block/properties
    * :queryable? - Boolean for whether property can be queried in the query builder
    * :queryable? - Boolean for whether property can be queried in the query builder
    * :closed-values - Vec of closed-value maps for properties with choices. Map
    * :closed-values - Vec of closed-value maps for properties with choices. Map
@@ -196,10 +194,6 @@
                                  {:logseq.property/description "Provides a way for a page to associate to another page i.e. backward compatible tagging."}}
                                  {:logseq.property/description "Provides a way for a page to associate to another page i.e. backward compatible tagging."}}
      :logseq.property/background-color {:title "Background color"
      :logseq.property/background-color {:title "Background color"
                                         :schema {:type :default :hide? true}}
                                         :schema {:type :default :hide? true}}
-     :logseq.property/background-image {:title "Background image"
-                                        :schema
-                                        {:type :default ; FIXME: asset
-                                         :view-context :block}}
    ;; number (1-6) or boolean for auto heading
    ;; number (1-6) or boolean for auto heading
      :logseq.property/heading {:title "Heading"
      :logseq.property/heading {:title "Heading"
                                :schema {:type :any :hide? true}
                                :schema {:type :any :hide? true}
@@ -241,7 +235,6 @@
                                     :schema {:type :map :hide? true}}
                                     :schema {:type :map :hide? true}}
    ;; FIXME: :logseq.property/order-list-type should updated to closed values
    ;; FIXME: :logseq.property/order-list-type should updated to closed values
      :logseq.property/order-list-type {:title "List type"
      :logseq.property/order-list-type {:title "List type"
-                                       :name :logseq.order-list-type
                                        :schema {:type :default
                                        :schema {:type :default
                                                 :hide? true}}
                                                 :hide? true}}
      :logseq.property.linked-references/includes {:title "Included references"
      :logseq.property.linked-references/includes {:title "Included references"
@@ -253,10 +246,10 @@
                                                   :schema {:type :node
                                                   :schema {:type :node
                                                            :cardinality :many
                                                            :cardinality :many
                                                            :hide? true}}
                                                            :hide? true}}
-     :logseq.property.tldraw/page {:name :logseq.tldraw.page
+     :logseq.property.tldraw/page {:title "Tldraw Page"
                                    :schema {:type :map
                                    :schema {:type :map
                                             :hide? true}}
                                             :hide? true}}
-     :logseq.property.tldraw/shape {:name :logseq.tldraw.shape
+     :logseq.property.tldraw/shape {:title "Tldraw Shape"
                                     :schema {:type :map
                                     :schema {:type :map
                                              :hide? true}}
                                              :hide? true}}
 
 
@@ -567,17 +560,6 @@
                                                     :public? true}
                                                     :public? true}
                                            :queryable? true})))
                                            :queryable? true})))
 
 
-(def built-in-properties
-  (->> built-in-properties*
-       (map (fn [[k v]]
-              (assert (and (keyword? k) (namespace k)))
-              [k
-               ;; All built-ins must have a :name
-               (if (:name v)
-                 v
-                 (assoc v :name (keyword (string/lower-case (name k)))))]))
-       (into (ordered-map))))
-
 (def db-attribute-properties
 (def db-attribute-properties
   "Internal properties that are also db schema attributes"
   "Internal properties that are also db schema attributes"
   #{:block/alias :block/tags :block/parent
   #{:block/alias :block/tags :block/parent
@@ -701,22 +683,6 @@
   (or (:block/title ent)
   (or (:block/title ent)
       (:logseq.property/value ent)))
       (:logseq.property/value ent)))
 
 
-(defn- ref->property-value-content
-  "Given a ref from a pulled query e.g. `{:db/id X}`, gets a readable name for
-  the property value of a ref type property"
-  [db ref]
-  (some->> (:db/id ref)
-           (d/entity db)
-           property-value-content))
-
-(defn ref->property-value-contents
-  "Given a ref or refs from a pulled query e.g. `{:db/id X}`, gets a readable
-  name for the property values of a ref type property"
-  [db ref]
-  (if (or (set? ref) (sequential? ref))
-    (set (map #(ref->property-value-content db %) ref))
-    (ref->property-value-content db ref)))
-
 (defn get-closed-value-entity-by-name
 (defn get-closed-value-entity-by-name
   "Given a property, finds one of its closed values by name or nil if none
   "Given a property, finds one of its closed values by name or nil if none
   found. Works for all closed value types"
   found. Works for all closed value types"
@@ -752,16 +718,6 @@
   [property]
   [property]
   (= (:db/cardinality property) :db.cardinality/many))
   (= (:db/cardinality property) :db.cardinality/many))
 
 
-(defn properties-by-name
-  "Given a block from a query result, returns a map of its properties indexed by
-  property names"
-  [db block]
-  (->> (properties block)
-       (map (fn [[k v]]
-              [(:block/title (d/entity db k))
-               (ref->property-value-contents db v)]))
-       (into {})))
-
 (defn public-built-in-property?
 (defn public-built-in-property?
   "Indicates whether built-in property can be seen and edited by users"
   "Indicates whether built-in property can be seen and edited by users"
   [entity]
   [entity]

+ 3 - 4
deps/db/src/logseq/db/sqlite/create_graph.cljs

@@ -51,20 +51,19 @@
   "Given a properties map in the format of db-property/built-in-properties, builds their properties tx"
   "Given a properties map in the format of db-property/built-in-properties, builds their properties tx"
   [built-in-properties]
   [built-in-properties]
   (mapcat
   (mapcat
-   (fn [[db-ident {:keys [attribute schema title closed-values properties] :as m}]]
+   (fn [[db-ident {:keys [attribute schema title closed-values properties]}]]
      (let [db-ident (or attribute db-ident)
      (let [db-ident (or attribute db-ident)
-           prop-name (or title (name (:name m)))
            schema' (schema->qualified-property-keyword schema)
            schema' (schema->qualified-property-keyword schema)
            [property & others] (if closed-values
            [property & others] (if closed-values
                                  (db-property-build/build-closed-values
                                  (db-property-build/build-closed-values
                                   db-ident
                                   db-ident
-                                  prop-name
+                                  title
                                   {:db/ident db-ident :schema schema' :closed-values closed-values}
                                   {:db/ident db-ident :schema schema' :closed-values closed-values}
                                   {})
                                   {})
                                  [(sqlite-util/build-new-property
                                  [(sqlite-util/build-new-property
                                    db-ident
                                    db-ident
                                    schema'
                                    schema'
-                                   {:title prop-name})])
+                                   {:title title})])
            pvalue-tx-m (->property-value-tx-m
            pvalue-tx-m (->property-value-tx-m
                         (merge property
                         (merge property
                                ;; This config is for :logseq.property/default-value and may need to
                                ;; This config is for :logseq.property/default-value and may need to

+ 5 - 5
deps/db/test/logseq/db/sqlite/build_test.cljs

@@ -54,17 +54,17 @@
            [{:page {:block/title "page1"}
            [{:page {:block/title "page1"}
              :blocks [{:block/title "some todo"
              :blocks [{:block/title "some todo"
                        :build/properties {:logseq.property/status :logseq.property/status.doing}}
                        :build/properties {:logseq.property/status :logseq.property/status.doing}}
-                      {:block/title "some slide"
-                       :build/properties {:logseq.property/background-image "https://placekitten.com/200/300"}}]}])]
+                      {:block/title "rojo"
+                       :build/properties {:logseq.property/background-color "red"}}]}])]
     (is (= :logseq.property/status.doing
     (is (= :logseq.property/status.doing
            (->> (db-test/find-block-by-content @conn "some todo")
            (->> (db-test/find-block-by-content @conn "some todo")
                 :logseq.property/status
                 :logseq.property/status
                 :db/ident))
                 :db/ident))
         "built-in property with closed value is created and correctly associated to a block")
         "built-in property with closed value is created and correctly associated to a block")
 
 
-    (is (= "https://placekitten.com/200/300"
-           (->> (db-test/find-block-by-content @conn "some slide")
-                :logseq.property/background-image
+    (is (= "red"
+           (->> (db-test/find-block-by-content @conn "rojo")
+                :logseq.property/background-color
                 db-property/property-value-content))
                 db-property/property-value-content))
         "built-in :default property is created and correctly associated to a block")))
         "built-in :default property is created and correctly associated to a block")))
 
 

+ 18 - 19
deps/graph-parser/src/logseq/graph_parser/exporter.cljs

@@ -29,7 +29,8 @@
             [logseq.graph-parser.block :as gp-block]
             [logseq.graph-parser.block :as gp-block]
             [logseq.graph-parser.extract :as extract]
             [logseq.graph-parser.extract :as extract]
             [logseq.graph-parser.property :as gp-property]
             [logseq.graph-parser.property :as gp-property]
-            [promesa.core :as p]))
+            [promesa.core :as p]
+            [logseq.db.common.property-util :as db-property-util]))
 
 
 (defn- add-missing-timestamps
 (defn- add-missing-timestamps
   "Add updated-at or created-at timestamps if they doesn't exist"
   "Add updated-at or created-at timestamps if they doesn't exist"
@@ -405,38 +406,36 @@
     (when (and prev-type (not= prev-type prop-type))
     (when (and prev-type (not= prev-type prop-type))
       {:type {:from prev-type :to prop-type}})))
       {:type {:from prev-type :to prop-type}})))
 
 
-(def built-in-property-name-to-idents
-  "Map of all built-in keyword property names to their idents. Using in-memory property
-  names because these are legacy names already in a user's file graph"
-  (merge (->> (dissoc db-property/built-in-properties :logseq.property/publishing-public?)
-              (map (fn [[k v]]
-                     [(:name v) k]))
-              (into {}))
-         ;; TODO: Move 3 remaining :name config from built-in-properties to here
-         {:public :logseq.property/publishing-public?}))
-
-(def all-built-in-property-names
-  "All built-in property names as a set of keywords"
-  (-> built-in-property-name-to-idents keys set
+(def built-in-property-file-to-db-idents
+  "Map of built-in property file ids to their db graph idents"
+  (->> (keys db-property/built-in-properties)
+       (map (fn [k]
+              [(db-property-util/get-file-pid k) k]))
+       (into {})))
+
+(def all-built-in-property-file-ids
+  "All built-in property file ids as a set of keywords"
+  (-> built-in-property-file-to-db-idents keys set
       ;; built-in-properties that map to new properties
       ;; built-in-properties that map to new properties
       (set/union #{:filters :query-table :query-properties :query-sort-by :query-sort-desc :hl-stamp :file :file-path})))
       (set/union #{:filters :query-table :query-properties :query-sort-by :query-sort-desc :hl-stamp :file :file-path})))
 
 
+;; TODO: Review whether this should be using :block/title instead of file graph ids
 (def all-built-in-names
 (def all-built-in-names
   "All built-in properties and classes as a set of keywords"
   "All built-in properties and classes as a set of keywords"
-  (set/union all-built-in-property-names
+  (set/union all-built-in-property-file-ids
              (set (->> db-class/built-in-classes
              (set (->> db-class/built-in-classes
                        vals
                        vals
                        (map #(-> % :title string/lower-case keyword))))))
                        (map #(-> % :title string/lower-case keyword))))))
 
 
 (def file-built-in-property-names
 (def file-built-in-property-names
   "File-graph built-in property names that are supported. Expressed as set of keywords"
   "File-graph built-in property names that are supported. Expressed as set of keywords"
-  #{:alias :tags :background-color :background-image :heading
+  #{:alias :tags :background-color :heading
     :query-table :query-properties :query-sort-by :query-sort-desc
     :query-table :query-properties :query-sort-by :query-sort-desc
     :ls-type :hl-type :hl-color :hl-page :hl-stamp :hl-value :file :file-path
     :ls-type :hl-type :hl-color :hl-page :hl-stamp :hl-value :file :file-path
     :logseq.order-list-type :logseq.tldraw.page :logseq.tldraw.shape
     :logseq.order-list-type :logseq.tldraw.page :logseq.tldraw.shape
     :icon :public :exclude-from-graph-view :filters})
     :icon :public :exclude-from-graph-view :filters})
 
 
-(assert (set/subset? file-built-in-property-names all-built-in-property-names)
+(assert (set/subset? file-built-in-property-names all-built-in-property-file-ids)
         "All file-built-in properties are used in db graph")
         "All file-built-in properties are used in db graph")
 
 
 (def query-table-special-keys
 (def query-table-special-keys
@@ -518,7 +517,7 @@
                            :ls-type
                            :ls-type
                            [[:logseq.property/ls-type (keyword prop-value)]]
                            [[:logseq.property/ls-type (keyword prop-value)]]
                            ;; else
                            ;; else
-                           [[(built-in-property-name-to-idents prop) prop-value]]))))
+                           [[(built-in-property-file-to-db-idents prop) prop-value]]))))
              (into {}))]
              (into {}))]
     (cond-> m
     (cond-> m
       (and (contains? props :query-sort-desc) (:query-sort-by props))
       (and (contains? props :query-sort-desc) (:query-sort-by props))
@@ -661,7 +660,7 @@
    ;; Not supported as they have been ignored for a long time and cause invalid built-in pages
    ;; Not supported as they have been ignored for a long time and cause invalid built-in pages
    :now :later :doing :done :canceled :cancelled :in-progress :todo :wait :waiting
    :now :later :doing :done :canceled :cancelled :in-progress :todo :wait :waiting
    ;; deprecated in db graphs
    ;; deprecated in db graphs
-   :macros :logseq.query/nlp-date
+   :background-image :macros :logseq.query/nlp-date
    :card-last-interval :card-repeats :card-last-reviewed :card-next-schedule
    :card-last-interval :card-repeats :card-last-reviewed :card-next-schedule
    :card-ease-factor :card-last-score
    :card-ease-factor :card-last-score
    :logseq.color :logseq.table.borders :logseq.table.stripes :logseq.table.max-width
    :logseq.color :logseq.table.borders :logseq.table.stripes :logseq.table.max-width

+ 0 - 2
gulpfile.js

@@ -67,7 +67,6 @@ const common = {
         'node_modules/html2canvas/dist/html2canvas.min.js',
         'node_modules/html2canvas/dist/html2canvas.min.js',
         'node_modules/interactjs/dist/interact.min.js',
         'node_modules/interactjs/dist/interact.min.js',
         'node_modules/photoswipe/dist/umd/*.js',
         'node_modules/photoswipe/dist/umd/*.js',
-        'node_modules/reveal.js/dist/reveal.js',
         'node_modules/shepherd.js/dist/js/shepherd.min.js',
         'node_modules/shepherd.js/dist/js/shepherd.min.js',
         'node_modules/marked/marked.min.js',
         'node_modules/marked/marked.min.js',
         'node_modules/@highlightjs/cdn-assets/highlight.min.js',
         'node_modules/@highlightjs/cdn-assets/highlight.min.js',
@@ -103,7 +102,6 @@ const common = {
       ]).pipe(gulp.dest(path.join(outputPath, 'js', 'pdfjs', 'cmaps'))),
       ]).pipe(gulp.dest(path.join(outputPath, 'js', 'pdfjs', 'cmaps'))),
       () => gulp.src([
       () => gulp.src([
         'node_modules/inter-ui/inter.css',
         'node_modules/inter-ui/inter.css',
-        'node_modules/reveal.js/dist/theme/fonts/source-sans-pro/**',
       ]).pipe(gulp.dest(path.join(outputPath, 'css'))),
       ]).pipe(gulp.dest(path.join(outputPath, 'css'))),
       () => gulp.src('node_modules/inter-ui/Inter (web)/*.*').
       () => gulp.src('node_modules/inter-ui/Inter (web)/*.*').
         pipe(gulp.dest(path.join(outputPath, 'css', 'Inter (web)'))),
         pipe(gulp.dest(path.join(outputPath, 'css', 'Inter (web)'))),

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

@@ -426,8 +426,7 @@
        ["Advanced Query" (advanced-query-steps) "Create an advanced query block" :icon/query]
        ["Advanced Query" (advanced-query-steps) "Create an advanced query block" :icon/query]
        (when-not db?
        (when-not db?
          ["Zotero" (zotero-steps) "Import Zotero journal article" :icon/circle-letter-z])
          ["Zotero" (zotero-steps) "Import Zotero journal article" :icon/circle-letter-z])
-       (when-not db?
-         ["Query function" [[:editor/input "{{function }}" {:backward-pos 2}]] "Create a query function" :icon/queryCode])
+       ["Query function" [[:editor/input "{{function }}" {:backward-pos 2}]] "Create a query function" :icon/queryCode]
        ["Calculator"
        ["Calculator"
         (calc-steps)
         (calc-steps)
         "Insert a calculator" :icon/calculator]
         "Insert a calculator" :icon/calculator]
@@ -474,7 +473,7 @@
         commands)
         commands)
 
 
 ;; Allow user to modify or extend, should specify how to extend.
 ;; Allow user to modify or extend, should specify how to extend.
-
+      
       (state/get-commands)
       (state/get-commands)
       (when-let [plugin-commands (seq (some->> (state/get-plugins-slash-commands)
       (when-let [plugin-commands (seq (some->> (state/get-plugins-slash-commands)
                                                (mapv #(vec (concat % [nil :icon/puzzle])))))]
                                                (mapv #(vec (concat % [nil :icon/puzzle])))))]

+ 4 - 3
src/main/frontend/common/graph_view.cljs

@@ -5,7 +5,6 @@
             [datascript.core :as d]
             [datascript.core :as d]
             [logseq.common.util :as common-util]
             [logseq.common.util :as common-util]
             [logseq.db :as ldb]
             [logseq.db :as ldb]
-            [logseq.db.common.property-util :as db-property-util]
             [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.sqlite.create-graph :as sqlite-create-graph]
             [logseq.db.sqlite.create-graph :as sqlite-create-graph]
             [logseq.graph-parser.db :as gp-db]))
             [logseq.graph-parser.db :as gp-db]))
@@ -85,7 +84,7 @@
         db-based? (entity-plus/db-based-graph? db)
         db-based? (entity-plus/db-based-graph? db)
         created-ats (map :block/created-at full-pages)
         created-ats (map :block/created-at full-pages)
 
 
-            ;; build up nodes
+        ;; build up nodes
         full-pages'
         full-pages'
         (cond->> full-pages
         (cond->> full-pages
           created-at-filter
           created-at-filter
@@ -94,7 +93,9 @@
           (remove ldb/journal?)
           (remove ldb/journal?)
           (not excluded-pages?)
           (not excluded-pages?)
           (remove (fn [p] (true?
           (remove (fn [p] (true?
-                           (get p (db-property-util/get-pid-2 db :logseq.property/exclude-from-graph-view))))))
+                           (if db-based?
+                             (get p :logseq.property/exclude-from-graph-view)
+                             (get-in p [:block/properties :exclude-from-graph-view]))))))
         links (concat relation tagged-pages namespaces)
         links (concat relation tagged-pages namespaces)
         linked (set (mapcat identity links))
         linked (set (mapcat identity links))
         build-in-pages (->> (if db-based? sqlite-create-graph/built-in-pages-names gp-db/built-in-pages-names)
         build-in-pages (->> (if db-based? sqlite-create-graph/built-in-pages-names gp-db/built-in-pages-names)

+ 38 - 44
src/main/frontend/components/block.cljs

@@ -1272,7 +1272,6 @@
     (if (and block (:block/title block))
     (if (and block (:block/title block))
       (let [content-cp (block-content config'
       (let [content-cp (block-content config'
                                       block nil (:block/uuid block)
                                       block nil (:block/uuid block)
-                                      (:slide? config)
                                       nil)
                                       nil)
             display-type (:logseq.property.node/display-type block)]
             display-type (:logseq.property.node/display-type block)]
         (if (and display-type (not (contains? #{:quote :math} display-type)))
         (if (and display-type (not (contains? #{:quote :math} display-type)))
@@ -2271,7 +2270,6 @@
         block-ast-title (:block.temp/ast-title block)
         block-ast-title (:block.temp/ast-title block)
         config (assoc config :block block)
         config (assoc config :block block)
         level (:level config)
         level (:level config)
-        slide? (boolean (:slide? config))
         block-ref? (:block-ref? config)
         block-ref? (:block-ref? config)
         block-type (or (keyword (pu/lookup block :logseq.property/ls-type)) :default)
         block-type (or (keyword (pu/lookup block :logseq.property/ls-type)) :default)
         html-export? (:html-export? config)
         html-export? (:html-export? config)
@@ -2339,12 +2337,10 @@
         (concat
         (concat
          (when (config/local-file-based-graph? (state/get-current-repo))
          (when (config/local-file-based-graph? (state/get-current-repo))
            [(when (and (not pre-block?)
            [(when (and (not pre-block?)
-                       (not html-export?)
-                       (not slide?))
+                       (not html-export?))
               (file-block/block-checkbox block (str "mr-1 cursor")))
               (file-block/block-checkbox block (str "mr-1 cursor")))
             (when (and (not pre-block?)
             (when (and (not pre-block?)
-                       (not html-export?)
-                       (not slide?))
+                       (not html-export?))
               (file-block/marker-switch block))
               (file-block/marker-switch block))
             (file-block/marker-cp block)
             (file-block/marker-cp block)
             (file-block/priority-cp block)])
             (file-block/priority-cp block)])
@@ -2648,13 +2644,12 @@
                 (state/set-selection-start-block! block-id)))))))))
                 (state/set-selection-start-block! block-id)))))))))
 
 
 (rum/defc dnd-separator-wrapper < rum/reactive
 (rum/defc dnd-separator-wrapper < rum/reactive
-  [block children block-id slide? top? block-content?]
+  [block children block-id top? block-content?]
   (let [dragging? (rum/react *dragging?)
   (let [dragging? (rum/react *dragging?)
         drag-to-block (rum/react *drag-to-block)]
         drag-to-block (rum/react *drag-to-block)]
     (when (and
     (when (and
            (= block-id drag-to-block)
            (= block-id drag-to-block)
            dragging?
            dragging?
-           (not slide?)
            (not (:block/pre-block? block)))
            (not (:block/pre-block? block)))
       (let [move-to (rum/react *move-to)]
       (let [move-to (rum/react *move-to)]
         (when-not
         (when-not
@@ -2696,9 +2691,9 @@
   [state block tag config popup-opts]
   [state block tag config popup-opts]
   (let [*hover? (::hover? state)
   (let [*hover? (::hover? state)
         *hover-container? (::hover-container? state)]
         *hover-container? (::hover-container? state)]
-    [:div.block-tag.items-center.relative.px-1
+    [:div.block-tag.items-center.relative
      {:key (str "tag-" (:db/id tag))
      {:key (str "tag-" (:db/id tag))
-      :class (if @*hover? "bg-gray-03 rounded" "")
+      :class (if @*hover? "bg-gray-03 rounded pr-1" "px-1")
       :on-mouse-over #(reset! *hover-container? true)
       :on-mouse-over #(reset! *hover-container? true)
       :on-mouse-out #(reset! *hover-container? false)}
       :on-mouse-out #(reset! *hover-container? false)}
      [:div.flex.items-center
      [:div.flex.items-center
@@ -2727,7 +2722,7 @@
                                  "Remove tag"))])
                                  "Remove tag"))])
                            popup-opts))}
                            popup-opts))}
       (if (and @*hover? (not (ldb/private-tags (:db/ident tag))))
       (if (and @*hover? (not (ldb/private-tags (:db/ident tag))))
-        [:a.inline-flex.text-muted-foreground.mr-1
+        [:a.inline-flex.text-muted-foreground
          {:title "Remove this tag"
          {:title "Remove this tag"
           :style {:margin-top 1}
           :style {:margin-top 1}
           :on-pointer-down
           :on-pointer-down
@@ -2872,7 +2867,7 @@
           (clock/seconds->days:hours:minutes:seconds time-spent))]))))
           (clock/seconds->days:hours:minutes:seconds time-spent))]))))
 
 
 (rum/defc ^:large-vars/cleanup-todo block-content < rum/reactive
 (rum/defc ^:large-vars/cleanup-todo block-content < rum/reactive
-  [config {:block/keys [uuid] :as block} edit-input-id block-id slide? *show-query?]
+  [config {:block/keys [uuid] :as block} edit-input-id block-id *show-query?]
   (let [repo (state/get-current-repo)
   (let [repo (state/get-current-repo)
         db-based? (config/db-based-graph? (state/get-current-repo))
         db-based? (config/db-based-graph? (state/get-current-repo))
         scheduled (when-not db-based? (:block/scheduled block))
         scheduled (when-not db-based? (:block/scheduled block))
@@ -2940,7 +2935,7 @@
     [:div.block-content.inline
     [:div.block-content.inline
      (cond-> {:id (str "block-content-" uuid)
      (cond-> {:id (str "block-content-" uuid)
               :key (str "block-content-" uuid)}
               :key (str "block-content-" uuid)}
-       (not slide?)
+       true
        (merge attrs))
        (merge attrs))
 
 
      [:<>
      [:<>
@@ -2974,7 +2969,6 @@
                  (let [hidden? (property-file/properties-hidden? (:block/properties block))]
                  (let [hidden? (property-file/properties-hidden? (:block/properties block))]
                    (not hidden?))
                    (not hidden?))
                  (not (and block-ref? (or (seq ast-title) (seq ast-body))))
                  (not (and block-ref? (or (seq ast-title) (seq ast-body))))
-                 (not (:slide? config))
                  (not= block-type :whiteboard-shape)
                  (not= block-type :whiteboard-shape)
                  (not (:table-block-title? config)))
                  (not (:table-block-title? config)))
         (properties-cp config block))
         (properties-cp config block))
@@ -2989,18 +2983,19 @@
 (rum/defc block-refs-count < rum/static
 (rum/defc block-refs-count < rum/static
   [block block-refs-count' *hide-block-refs?]
   [block block-refs-count' *hide-block-refs?]
   (when (> block-refs-count' 0)
   (when (> block-refs-count' 0)
-    (shui/button {:variant :ghost
-                  :title "Open block references"
-                  :class "px-1 py-0 w-5 h-5 opacity-70 hover:opacity-100"
-                  :size  :sm
-                  :on-click (fn [e]
-                              (if (gobj/get e "shiftKey")
-                                (state/sidebar-add-block!
-                                 (state/get-current-repo)
-                                 (:db/id block)
-                                 :block-ref)
-                                (swap! *hide-block-refs? not)))}
-                 [:span.text-sm block-refs-count'])))
+    [:div.h-6
+     (shui/button {:variant :ghost
+                   :title "Open block references"
+                   :class "px-1 py-0 w-5 h-5 opacity-70 hover:opacity-100"
+                   :size  :sm
+                   :on-click (fn [e]
+                               (if (gobj/get e "shiftKey")
+                                 (state/sidebar-add-block!
+                                  (state/get-current-repo)
+                                  (:db/id block)
+                                  :block-ref)
+                                 (swap! *hide-block-refs? not)))}
+                  [:span.text-sm block-refs-count'])]))
 
 
 (rum/defc block-left-menu < rum/reactive
 (rum/defc block-left-menu < rum/reactive
   [_config {:block/keys [uuid] :as _block}]
   [_config {:block/keys [uuid] :as _block}]
@@ -3020,7 +3015,7 @@
       [:div.more (ui/icon "dots-circle-horizontal" {:size 18})])]])
       [:div.more (ui/icon "dots-circle-horizontal" {:size 18})])]])
 
 
 (rum/defc block-content-with-error
 (rum/defc block-content-with-error
-  [config block edit-input-id block-id slide? *show-query? editor-box]
+  [config block edit-input-id block-id *show-query? editor-box]
   (let [[editing? set-editing!] (hooks/use-state false)
   (let [[editing? set-editing!] (hooks/use-state false)
         query (:logseq.property/query block)]
         query (:logseq.property/query block)]
     (ui/catch-error
     (ui/catch-error
@@ -3048,7 +3043,7 @@
                                        (editor-handler/unhighlight-blocks!)
                                        (editor-handler/unhighlight-blocks!)
                                        (state/set-editing! edit-input-id content block "" {:db (db/get-db)
                                        (state/set-editing! edit-input-id content block "" {:db (db/get-db)
                                                                                            :container-id (:container-id config)}))}})])
                                                                                            :container-id (:container-id config)}))}})])
-     (block-content config block edit-input-id block-id slide? *show-query?))))
+     (block-content config block edit-input-id block-id *show-query?))))
 
 
 (rum/defcs ^:large-vars/cleanup-todo block-content-or-editor < rum/reactive
 (rum/defcs ^:large-vars/cleanup-todo block-content-or-editor < rum/reactive
   (rum/local false ::hover?)
   (rum/local false ::hover?)
@@ -3058,7 +3053,6 @@
                  (or (:block/format block) :markdown))
                  (or (:block/format block) :markdown))
         editor-box (state/get-component :editor/box)
         editor-box (state/get-component :editor/box)
         editor-id (str "editor-" edit-input-id)
         editor-id (str "editor-" edit-input-id)
-        slide? (:slide? config)
         block-reference-only? (some->
         block-reference-only? (some->
                                (:block/title block)
                                (:block/title block)
                                string/trim
                                string/trim
@@ -3089,8 +3083,8 @@
                         :format format}
                         :format format}
                        edit-input-id
                        edit-input-id
                        config))]
                        config))]
-         [:div.flex.flex-1.w-full.block-content-wrapper {:style {:display (if (:slide? config) "block" "flex")}}
-          (block-content-with-error config block edit-input-id block-id slide? *show-query? editor-box)
+         [:div.flex.flex-1.w-full.block-content-wrapper {:style {:display "flex"}}
+          (block-content-with-error config block edit-input-id block-id *show-query? editor-box)
 
 
           (when (and (not hide-block-refs-count?)
           (when (and (not hide-block-refs-count?)
                      (not named?)
                      (not named?)
@@ -3110,14 +3104,16 @@
                 {:on-pointer-down (fn [e]
                 {:on-pointer-down (fn [e]
                                     (util/stop e)
                                     (util/stop e)
                                     (editor-handler/edit-block! block :max))}
                                     (editor-handler/edit-block! block :max))}
-                svg/edit])])])
+                svg/edit])])
+
+          (when-not (or (:table? config) (:property? config) (:page-title? config))
+            (block-refs-count block refs-count *hide-block-refs?))])
 
 
        (when-not (:table-block-title? config)
        (when-not (:table-block-title? config)
          [:div.flex.flex-row.items-center.self-start.gap-1
          [:div.flex.flex-row.items-center.self-start.gap-1
-          (when (and db-based? (not table?)) (block-positioned-properties config block :block-right))
-
-          (when-not (or (:table? config) (:property? config) (:page-title? config))
-            (block-refs-count block refs-count *hide-block-refs?))
+          (when (and db-based? (not table?))
+            [:div.opacity-70.hover:opacity-100
+             (block-positioned-properties config block :block-right)])
 
 
           (when-not (or (:block-ref? config) (:table? config) (:gallery-view? config)
           (when-not (or (:block-ref? config) (:table? config) (:gallery-view? config)
                         (:property? config))
                         (:property? config))
@@ -3519,7 +3515,6 @@
         breadcrumb-show? (:breadcrumb-show? config)
         breadcrumb-show? (:breadcrumb-show? config)
         *show-left-menu? (::show-block-left-menu? container-state)
         *show-left-menu? (::show-block-left-menu? container-state)
         *show-right-menu? (::show-block-right-menu? container-state)
         *show-right-menu? (::show-block-right-menu? container-state)
-        slide? (boolean (:slide? config))
         doc-mode? (:document/mode? config)
         doc-mode? (:document/mode? config)
         embed? (:embed? config)
         embed? (:embed? config)
         page-embed? (:page-embed? config)
         page-embed? (:page-embed? config)
@@ -3587,7 +3582,7 @@
        level
        level
        (assoc :level level)
        (assoc :level level)
 
 
-       (not slide?)
+       true
        (merge attrs)
        (merge attrs)
 
 
        (or reference? (and embed? (not page-embed?)))
        (or reference? (and embed? (not page-embed?)))
@@ -3606,7 +3601,7 @@
 
 
      ;; only render this for the first block in each container
      ;; only render this for the first block in each container
      (when (and top? (not (or table? property?)))
      (when (and top? (not (or table? property?)))
-       (dnd-separator-wrapper block children block-id slide? true false))
+       (dnd-separator-wrapper block children block-id true false))
 
 
      (when-not (:hide-title? config)
      (when-not (:hide-title? config)
        [:div.block-main-container.flex.flex-row.gap-1
        [:div.block-main-container.flex.flex-row.gap-1
@@ -3627,7 +3622,7 @@
          :on-mouse-leave (fn [_e]
          :on-mouse-leave (fn [_e]
                            (block-mouse-leave *control-show? block-id doc-mode?))}
                            (block-mouse-leave *control-show? block-id doc-mode?))}
 
 
-        (when (and (not slide?) (not in-whiteboard?) (not property?) (not (:table-block-title? config)))
+        (when (and (not in-whiteboard?) (not property?) (not (:table-block-title? config)))
           (let [edit? (or editing?
           (let [edit? (or editing?
                           (= uuid (:block/uuid (state/get-edit-block))))]
                           (= uuid (:block/uuid (state/get-edit-block))))]
             (block-control (assoc config :hide-bullet? (:page-title? config))
             (block-control (assoc config :hide-bullet? (:page-title? config))
@@ -3719,7 +3714,7 @@
                          (dissoc :original-block :data))]
                          (dissoc :original-block :data))]
          (block-children config' block children collapsed?)))
          (block-children config' block children collapsed?)))
 
 
-     (when-not (or in-whiteboard? table? property?) (dnd-separator-wrapper block children block-id slide? false false))]))
+     (when-not (or in-whiteboard? table? property?) (dnd-separator-wrapper block children block-id false false))]))
 
 
 (rum/defc block-container-inner
 (rum/defc block-container-inner
   [container-state repo config* block opts]
   [container-state repo config* block opts]
@@ -4041,7 +4036,7 @@
              (cond
              (cond
                (nil? inside-portal?) nil
                (nil? inside-portal?) nil
 
 
-               (or (:slide? config) inside-portal?)
+               inside-portal?
                (highlight/highlight (str (random-uuid))
                (highlight/highlight (str (random-uuid))
                                     {:class (str "language-" language)
                                     {:class (str "language-" language)
                                      :data-lang language}
                                      :data-lang language}
@@ -4134,8 +4129,7 @@
         (->elem :div.is-paragraph (map-inline config l)))
         (->elem :div.is-paragraph (map-inline config l)))
 
 
       ["Horizontal_Rule"]
       ["Horizontal_Rule"]
-      (when-not (:slide? config)
-        [:hr])
+      [:hr]
       ["Heading" h]
       ["Heading" h]
       (block-container config h)
       (block-container config h)
       ["List" l]
       ["List" l]

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

@@ -963,6 +963,10 @@ html.is-mac {
   .block-title-wrap {
   .block-title-wrap {
     @apply overflow-hidden h-6 whitespace-nowrap text-ellipsis;
     @apply overflow-hidden h-6 whitespace-nowrap text-ellipsis;
   }
   }
+
+  .jtrigger {
+    @apply px-1;
+  }
 }
 }
 
 
 .positioned-properties.block-below {
 .positioned-properties.block-below {

+ 35 - 21
src/main/frontend/components/block/macros.cljs

@@ -3,14 +3,30 @@
   (:require [clojure.walk :as walk]
   (:require [clojure.walk :as walk]
             [frontend.extensions.sci :as sci]
             [frontend.extensions.sci :as sci]
             [frontend.handler.common :as common-handler]
             [frontend.handler.common :as common-handler]
-            [frontend.handler.db-based.property.util :as db-pu]
             [goog.string :as gstring]
             [goog.string :as gstring]
             [goog.string.format]
             [goog.string.format]
             [frontend.state :as state]
             [frontend.state :as state]
-            [frontend.config :as config]))
+            [frontend.config :as config]
+            [datascript.core :as d]
+            [logseq.db.frontend.property :as db-property]
+            [frontend.db.conn :as db-conn]))
+
+(defn- properties-by-name
+  "Given a block from a query result, returns a map of its properties indexed by
+  property names"
+  [db block]
+  (->> (db-property/properties block)
+       (map (fn [[k v]]
+              [(:block/title (d/entity db k))
+               ;; For now just support cardinality :one
+               (when-not (set? v)
+                 (some->> (:db/id v)
+                          (d/entity db)
+                          db-property/property-value-content))]))
+       (into {})))
 
 
 (defn- normalize-query-function
 (defn- normalize-query-function
-  [ast repo result]
+  [ast* repo result]
   (let [ast (walk/prewalk
   (let [ast (walk/prewalk
              (fn [f]
              (fn [f]
                (if (and (list? f)
                (if (and (list? f)
@@ -25,26 +41,21 @@
                     (first f)
                     (first f)
                     (list 'map (second f) 'result)))
                     (list 'map (second f) 'result)))
                  f))
                  f))
-             ast)]
+             ast*)
+        db-based-graph? (config/db-based-graph? repo)
+        ;; These keyword aliases should be the same as those used in the query-table for sorting
+        special-file-graph-keywords
+        {:block :block/title
+         :page :block/name
+         :created-at :block/created-at
+         :updated-at :block/updated-at}]
     (walk/postwalk
     (walk/postwalk
      (fn [f]
      (fn [f]
        (cond
        (cond
          (keyword? f)
          (keyword? f)
-         ;; These keyword aliases should be the same as those used in the query-table for sorting
-         (case f
-           :block
-           :block/title
-
-           :page
-           :block/name
-
-           :created-at
-           :block/created-at
-
-           :updated-at
-           :block/updated-at
-
-           (let [prop-key (if (config/db-based-graph? repo) (name f) f)
+         (if-let [kw (and (not db-based-graph?) (get special-file-graph-keywords f))]
+           kw
+           (let [prop-key (if db-based-graph? (name f) f)
                  vals (map #(get-in % [:block/properties prop-key]) result)
                  vals (map #(get-in % [:block/properties prop-key]) result)
                  int? (some integer? vals)]
                  int? (some integer? vals)]
              `(~'fn [~'b]
              `(~'fn [~'b]
@@ -65,9 +76,12 @@
                        (mapcat val query-result*)
                        (mapcat val query-result*)
                        query-result*)
                        query-result*)
         repo (state/get-current-repo)
         repo (state/get-current-repo)
+        db (db-conn/get-db repo)
         query-result' (if (config/db-based-graph? repo)
         query-result' (if (config/db-based-graph? repo)
-                       (map #(assoc % :block/properties (db-pu/properties-by-name repo %)) query-result)
-                       query-result)
+                        (->> query-result
+                             (map #(d/entity db (:db/id %)))
+                             (map #(hash-map :block/properties (properties-by-name db %))))
+                        query-result)
         fn-string (-> (gstring/format "(fn [result] %s)" (first arguments))
         fn-string (-> (gstring/format "(fn [result] %s)" (first arguments))
                       (common-handler/safe-read-string "failed to parse function")
                       (common-handler/safe-read-string "failed to parse function")
                       (normalize-query-function repo query-result')
                       (normalize-query-function repo query-result')

+ 0 - 10
src/main/frontend/components/page_menu.cljs

@@ -106,16 +106,6 @@
             {:title   (t :page/delete)
             {:title   (t :page/delete)
              :options {:on-click #(delete-page-confirm! page)}})
              :options {:on-click #(delete-page-confirm! page)}})
 
 
-          (when (and (not (mobile-util/native-platform?))
-                     (not whiteboard?)
-                     (state/get-current-page))
-            {:title (t :page/slide-view)
-             :options {:on-click (fn []
-                                   (state/sidebar-add-block!
-                                    repo
-                                    (:db/id page)
-                                    :page-slide-view))}})
-
           ;; TODO: In the future, we'd like to extract file-related actions
           ;; TODO: In the future, we'd like to extract file-related actions
           ;; (such as open-in-finder & open-with-default-app) into a sub-menu of
           ;; (such as open-in-finder & open-with-default-app) into a sub-menu of
           ;; this one. However this component doesn't yet exist. PRs are welcome!
           ;; this one. However this component doesn't yet exist. PRs are welcome!

+ 0 - 9
src/main/frontend/components/right_sidebar.cljs

@@ -13,7 +13,6 @@
             [frontend.db :as db]
             [frontend.db :as db]
             [frontend.db.async :as db-async]
             [frontend.db.async :as db-async]
             [frontend.db.rtc.debug-ui :as rtc-debug-ui]
             [frontend.db.rtc.debug-ui :as rtc-debug-ui]
-            [frontend.extensions.slide :as slide]
             [frontend.handler.editor :as editor-handler]
             [frontend.handler.editor :as editor-handler]
             [frontend.handler.route :as route-handler]
             [frontend.handler.route :as route-handler]
             [frontend.handler.ui :as ui-handler]
             [frontend.handler.ui :as ui-handler]
@@ -25,7 +24,6 @@
             [logseq.shui.ui :as shui]
             [logseq.shui.ui :as shui]
             [medley.core :as medley]
             [medley.core :as medley]
             [promesa.core :as p]
             [promesa.core :as p]
-            [reitit.frontend.easy :as rfe]
             [rum.core :as rum]))
             [rum.core :as rum]))
 
 
 (rum/defc toggle
 (rum/defc toggle
@@ -129,13 +127,6 @@
                                                                            [repo new-value block-type]))})
                                                                            [repo new-value block-type]))})
           (str init-key))]
           (str init-key))]
 
 
-       :page-slide-view
-       (when entity
-         [[:a.page-title {:href (rfe/href :page {:name (str (:block/uuid entity))})}
-           (:block/title entity)]
-          [:div.ml-2.slide.mt-2
-           (slide/slide entity)]])
-
        :shortcut-settings
        :shortcut-settings
        [[:.flex.items-center (ui/icon "command" {:class "text-md mr-2"}) (t :help/shortcuts)]
        [[:.flex.items-center (ui/icon "command" {:class "text-md mr-2"}) (t :help/shortcuts)]
         (shortcut-settings)]
         (shortcut-settings)]

+ 1 - 2
src/main/frontend/db.cljs

@@ -29,8 +29,7 @@
   get-block-immediate-children get-block-page
   get-block-immediate-children get-block-page
   get-file file-exists?  get-files-full
   get-file file-exists?  get-files-full
   get-latest-journals get-page get-case-page get-page-alias-names
   get-latest-journals get-page get-case-page get-page-alias-names
-  get-page-blocks-no-cache get-page-format
-  journal-page? page? sub-block
+  get-page-format journal-page? page? sub-block
   page-empty? page-exists? get-alias-source-page
   page-empty? page-exists? get-alias-source-page
   has-children? whiteboard-page?])
   has-children? whiteboard-page?])
 
 

+ 0 - 129
src/main/frontend/extensions/slide.cljs

@@ -1,129 +0,0 @@
-(ns frontend.extensions.slide
-  (:require [cljs-bean.core :as bean]
-            [clojure.string :as string]
-            [frontend.components.block :as block]
-            [frontend.config :as config]
-            [frontend.context.i18n :refer [t]]
-            [frontend.db :as db]
-            [frontend.db-mixins :as db-mixins]
-            [frontend.db.conn :as conn]
-            [frontend.handler.db-based.property.util :as db-pu]
-            [frontend.loader :as loader]
-            [frontend.modules.outliner.tree :as outliner-tree]
-            [frontend.state :as state]
-            [frontend.ui :as ui]
-            [logseq.db :as ldb]
-            [logseq.db.frontend.property :as db-property]
-            [rum.core :as rum]))
-
-(defn loaded? []
-  js/window.Reveal)
-
-(defn- with-properties
-  [m block]
-  (let [repo (state/get-current-repo)
-        db-based? (config/db-based-graph? repo)
-        properties (if db-based?
-                     (as-> (db-property/properties block) properties
-                       (->> properties
-                            (keep (fn [[k v]]
-                                    ;; Don't inject hidden props like created-from-property
-                                    (when-not (:logseq.property/hide? (db/entity repo k))
-                                      [k
-                                       (if (:db/id v)
-                                         ;; Can't use db-property-util/lookup b/c vals aren't entities
-                                         (db-property/ref->property-value-contents (conn/get-db) v)
-                                         v)])))
-                            (into {})))
-                     (:block/properties block))]
-    (if (seq properties)
-      (merge m
-             (update-keys
-              properties
-              (fn [k]
-                (-> (str "data-" (if db-based? (db-pu/get-property-name k) (name k)))
-                    (string/replace "data-data-" "data-")))))
-      m)))
-
-(defonce *loading? (atom false))
-
-(defn render!
-  []
-  (let [deck (js/window.Reveal.
-              (js/document.querySelector ".reveal")
-              (bean/->js
-               {:embedded true
-                :controls true
-                :history false
-                :center true
-                :transition "slide"
-                :keyboardCondition "focused"}))]
-    (.initialize deck)))
-
-;; reveal.js doesn't support multiple nested sections yet.
-;; https://github.com/hakimel/reveal.js/issues/1440
-(rum/defc block-container
-  [config block level]
-  (let [children (:block/children block)
-        has-children? (seq children)
-        children (when has-children?
-                   (map (fn [block]
-                          (block-container config block (inc level))) children))
-        block-el (block/block-container config (dissoc block :block/children))
-        dom-attrs (with-properties {:key (str "slide-block-" (:block/uuid block))} block)]
-    (if has-children?
-      [:section dom-attrs
-       [:section.relative
-        block-el]
-       children]
-      [:section dom-attrs block-el])))
-
-(defn slide-content
-  [loading? style config blocks]
-  [:div
-   [:p.text-sm
-    (t :page/slide-view-tip-go-fullscreen)]
-   [:div.reveal {:style style}
-    (when loading?
-      [:div.ls-center (ui/loading "")])
-    [:div.slides
-     (map #(block-container config % 1) blocks)]]])
-
-(rum/defc slide < rum/reactive db-mixins/query
-  {:did-mount (fn [state]
-                (if (loaded?)
-                  (do
-                    (reset! *loading? false)
-                    (render!))
-                  (do
-                    (reset! *loading? true)
-                    (loader/load
-                     (config/asset-uri (if config/publishing? "static/js/reveal.js" "/static/js/reveal.js"))
-                     (fn []
-                       (reset! *loading? false)
-                       (render!)))))
-                state)}
-  [page]
-  (let [page-name (:block/title page)
-        loading? (rum/react *loading?)
-        journal? (ldb/journal? page)
-        repo (state/get-current-repo)
-        blocks (-> (db/get-page-blocks-no-cache repo (:db/id page))
-                   (outliner-tree/blocks->vec-tree (:db/id page)))
-        blocks (if (and journal? (not (config/db-based-graph? repo)))
-                 (rest blocks)
-                 blocks)
-        blocks (map (fn [block]
-                      (update block :block/children
-                              (fn [children]
-                                (->>
-                                 (mapcat
-                                  (fn [x]
-                                    (tree-seq map? :block/children x))
-                                  children)
-                                 (map #(dissoc % :block/children)))))) blocks)
-        config {:id          "slide-reveal-js"
-                :slide?      true
-                :sidebar?    true
-                :page-name   page-name}]
-    (slide-content loading? {:height 400} config blocks)))

+ 0 - 39
src/main/frontend/extensions/slide.css

@@ -1,39 +0,0 @@
-html[data-theme=light] {
-  #right-sidebar .reveal {
-    h1,
-    h2,
-    h3,
-    h4,
-    h5,
-    h6 {
-      color: initial;
-    }
-  }
-}
-
-.reveal {
-  color: var(--ls-primary-text-color);
-  background: var(--ls-slide-background-color);
-
-  pre.code {
-    background: transparent;
-  }
-
-  .hljs {
-    background: none;
-  }
-
-  section img {
-    margin: 1rem auto;
-  }
-
-  .progress span {
-    display: block;
-    height: 100%;
-    width: 100%;
-    background-color: currentColor;
-    transition: transform 0.8s cubic-bezier(0.26, 0.86, 0.44, 0.985);
-    transform-origin: 0 0;
-    transform: scaleX(0);
-  }
-}

+ 1 - 12
src/main/frontend/handler/db_based/property/util.cljs

@@ -5,11 +5,6 @@
             [frontend.state :as state]
             [frontend.state :as state]
             [logseq.db.frontend.property :as db-property]))
             [logseq.db.frontend.property :as db-property]))
 
 
-(defn get-property-name
-  "Get a property's name given its id"
-  [id]
-  (:block/title (db-utils/entity id)))
-
 (defn get-property-value
 (defn get-property-value
   "Get a property's name given its id"
   "Get a property's name given its id"
   [e]
   [e]
@@ -17,16 +12,10 @@
     (db-property/property-value-content e)
     (db-property/property-value-content e)
     e))
     e))
 
 
-(defn properties-by-name
-  "Given a block from a query result, returns a map of its properties indexed by property names"
-  [repo block]
-  (let [db (conn/get-db repo)]
-    (db-property/properties-by-name db block)))
-
 (defn readable-properties
 (defn readable-properties
   "Given a DB graph's properties, returns a readable properties map with keys as
   "Given a DB graph's properties, returns a readable properties map with keys as
   property names and property values dereferenced where possible. Has some
   property names and property values dereferenced where possible. Has some
-  overlap with db-property/properties-by-name"
+  overlap with block-macros/properties-by-name"
   ([properties] (readable-properties properties {:original-key? true}))
   ([properties] (readable-properties properties {:original-key? true}))
   ([properties {:keys [original-key? key-fn]
   ([properties {:keys [original-key? key-fn]
                 :or {key-fn identity}}]
                 :or {key-fn identity}}]

+ 0 - 6
src/main/frontend/handler/editor.cljs

@@ -3295,11 +3295,6 @@
   (when (state/editing?)
   (when (state/editing?)
     (keydown-backspace-handler false e)))
     (keydown-backspace-handler false e)))
 
 
-(defn- slide-focused?
-  []
-  (some-> (first (dom/by-class "reveal"))
-          (dom/has-class? "focused")))
-
 (defn- in-page-preview?
 (defn- in-page-preview?
   []
   []
   (some-> js/document.activeElement
   (some-> js/document.activeElement
@@ -3312,7 +3307,6 @@
     (when (and (not (auto-complete?))
     (when (and (not (auto-complete?))
                (or (in-page-preview?)
                (or (in-page-preview?)
                    (not (in-shui-popup?)))
                    (not (in-shui-popup?)))
-               (not (slide-focused?))
                (not (state/get-timestamp-block)))
                (not (state/get-timestamp-block)))
       (util/stop e)
       (util/stop e)
       (cond
       (cond

+ 2 - 2
src/main/frontend/util.cljc

@@ -779,10 +779,10 @@
 #?(:cljs
 #?(:cljs
    (defn get-blocks-noncollapse
    (defn get-blocks-noncollapse
      ([]
      ([]
-      (->> (d/sel "div:not(.reveal) .ls-block")
+      (->> (d/sel "div .ls-block")
            (filter (fn [b] (some? (gobj/get b "offsetParent"))))))
            (filter (fn [b] (some? (gobj/get b "offsetParent"))))))
      ([blocks-container]
      ([blocks-container]
-      (->> (d/sel blocks-container "div:not(.reveal) .ls-block")
+      (->> (d/sel blocks-container "div .ls-block")
            (filter (fn [b] (some? (gobj/get b "offsetParent"))))))))
            (filter (fn [b] (some? (gobj/get b "offsetParent"))))))))
 
 
 #?(:cljs
 #?(:cljs

+ 0 - 2
src/resources/dicts/ca.edn

@@ -428,8 +428,6 @@
  :page/open-in-finder                               "Obrir ubicació del arxiu"
  :page/open-in-finder                               "Obrir ubicació del arxiu"
  :page/open-with-default-app                        "Obrir amb la aplicació preestablerta"
  :page/open-with-default-app                        "Obrir amb la aplicació preestablerta"
  :page/page-already-exists                          "¡La pàgina “{1}” ja existeix!"
  :page/page-already-exists                          "¡La pàgina “{1}” ja existeix!"
- :page/slide-view                                   "Veure com diapositives"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "Consell: pressiona "] [:code "f"] [:span.opacity-70 " per anar a pantalla completa"]])
  :page/something-went-wrong                         "Alguna cosa ha sortit malament"
  :page/something-went-wrong                         "Alguna cosa ha sortit malament"
  :page/step                                         "Pas {1}"
  :page/step                                         "Pas {1}"
  :page/try                                          "Intentar"
  :page/try                                          "Intentar"

+ 0 - 2
src/resources/dicts/cs.edn

@@ -130,8 +130,6 @@
  :page/logseq-is-having-a-problem                  "Logseq má problém. Chcete-li se pokusit uvést jej zpět do funkčního stavu, vyzkoušejte prosím následující bezpečné kroky v uvedeném pořadí:"
  :page/logseq-is-having-a-problem                  "Logseq má problém. Chcete-li se pokusit uvést jej zpět do funkčního stavu, vyzkoušejte prosím následující bezpečné kroky v uvedeném pořadí:"
  :page/step                                        "Krok {1}"
  :page/step                                        "Krok {1}"
  :page/try                                         "Zkusit"
  :page/try                                         "Zkusit"
- :page/slide-view                                  "Zobrazit jjako snímky"
- :page/slide-view-tip-go-fullscreen                (fn [] [[:span.opacity-70 "Tip: stiskněte "] [:code "f"] [:span.opacity-70 " pro celou obrazovku"]])
  :page/delete-confirmation                         "Jste si jisti, že chcete tuto stránku a její soubor odstranit?"
  :page/delete-confirmation                         "Jste si jisti, že chcete tuto stránku a její soubor odstranit?"
  :page/open-in-finder                              "Otevřít v adresáři"
  :page/open-in-finder                              "Otevřít v adresáři"
  :page/open-with-default-app                       "Otevřít pomocí výchozí aplikace"
  :page/open-with-default-app                       "Otevřít pomocí výchozí aplikace"

+ 0 - 2
src/resources/dicts/de.edn

@@ -244,8 +244,6 @@
  :page/open-in-finder "Im Verzeichnis öffnen"
  :page/open-in-finder "Im Verzeichnis öffnen"
  :page/open-with-default-app "Mit Standard-Anwendung öffnen"
  :page/open-with-default-app "Mit Standard-Anwendung öffnen"
  :page/page-already-exists "Die Seite “{1}” existiert bereits!"
  :page/page-already-exists "Die Seite “{1}” existiert bereits!"
- :page/slide-view "Als Slides anzeigen"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "Tipp: Drücken Sie "] [:code "f"] [:span.opacity-70 ", um zum Vollbild zu wechseln"]])
  :page/something-went-wrong "Es ist etwas schief gelaufen."
  :page/something-went-wrong "Es ist etwas schief gelaufen."
  :page/step "Schritt {1}"
  :page/step "Schritt {1}"
  :page/try "Versuch"
  :page/try "Versuch"

+ 0 - 2
src/resources/dicts/en.edn

@@ -137,8 +137,6 @@
  :page/logseq-is-having-a-problem "Logseq is having a problem. To try to get it back to a working state, please try the following safe steps in order:"
  :page/logseq-is-having-a-problem "Logseq is having a problem. To try to get it back to a working state, please try the following safe steps in order:"
  :page/step "Step {1}"
  :page/step "Step {1}"
  :page/try "Try"
  :page/try "Try"
- :page/slide-view "View as slides"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "Tip: press "] [:code "f"] [:span.opacity-70 " to go fullscreen"]])
  :page/delete-confirmation "Are you sure you want to delete this page and its file?"
  :page/delete-confirmation "Are you sure you want to delete this page and its file?"
  :page/db-delete-confirmation "Are you sure you want to delete this page?"
  :page/db-delete-confirmation "Are you sure you want to delete this page?"
  :page/open-in-finder "Open in directory"
  :page/open-in-finder "Open in directory"

+ 0 - 2
src/resources/dicts/es.edn

@@ -427,8 +427,6 @@
  :page/open-in-finder                               "Abrir ubicación del archivo"
  :page/open-in-finder                               "Abrir ubicación del archivo"
  :page/open-with-default-app                        "Abrir con la aplicación predeterminada"
  :page/open-with-default-app                        "Abrir con la aplicación predeterminada"
  :page/page-already-exists                          "¡La página “{1}” ya existe!"
  :page/page-already-exists                          "¡La página “{1}” ya existe!"
- :page/slide-view                                   "Ver como diapositivas"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "Consejo: presiona "] [:code "f"] [:span.opacity-70 " para ir a pantalla completa"]])
  :page/something-went-wrong                         "Algo malió sal"
  :page/something-went-wrong                         "Algo malió sal"
  :page/step                                         "Paso {1}"
  :page/step                                         "Paso {1}"
  :page/try                                          "Intentar"
  :page/try                                          "Intentar"

+ 0 - 2
src/resources/dicts/fa.edn

@@ -106,8 +106,6 @@
  :page/logseq-is-having-a-problem "لاگ‌سیک دچار مشکلی شده است. برای بازگرداندن آن به حالت قابل استفاده لطفا گام‌های زیر را به ترتیب انجام دهید:"
  :page/logseq-is-having-a-problem "لاگ‌سیک دچار مشکلی شده است. برای بازگرداندن آن به حالت قابل استفاده لطفا گام‌های زیر را به ترتیب انجام دهید:"
  :page/step "گام {1}"
  :page/step "گام {1}"
  :page/try "امتحان کنید"
  :page/try "امتحان کنید"
- :page/slide-view "نمایش به صورت اسلاید"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "نکته: دکمه "] [:code "f"] [:span.opacity-70 " را برای رفتن به حالت تمام صفحه بفشارید"]])
  :page/delete-confirmation "مطمئنید که می‌خواید این برگه به همراه پرونده‌اش را پاک کنید؟"
  :page/delete-confirmation "مطمئنید که می‌خواید این برگه به همراه پرونده‌اش را پاک کنید؟"
  :page/open-in-finder "باز کردن در پوشه"
  :page/open-in-finder "باز کردن در پوشه"
  :page/open-with-default-app "باز کردن با برنامه پیش‌فرض"
  :page/open-with-default-app "باز کردن با برنامه پیش‌فرض"

+ 0 - 2
src/resources/dicts/fr.edn

@@ -504,7 +504,6 @@
     :on-boarding/quick-tour-journal-page-title "📆 Page du journal quotidien"
     :on-boarding/quick-tour-journal-page-title "📆 Page du journal quotidien"
     :on-boarding/quick-tour-left-sidebar-desc "Ouvrir le panneau latéral gauche pour explorer des éléments du menu impor…"
     :on-boarding/quick-tour-left-sidebar-desc "Ouvrir le panneau latéral gauche pour explorer des éléments du menu impor…"
     :on-boarding/quick-tour-left-sidebar-title "👀 Panneau latéral gauche"
     :on-boarding/quick-tour-left-sidebar-title "👀 Panneau latéral gauche"
-    :page/slide-view-tip-go-fullscreen "(fn [] [[:span.opacity-70 \"Conseil: appuyer \"] [:code \"f\"] [:span.opacity-70 \" pour entrer en mode plein écran\"]])"
     :bug-report/inspector-page-placeholder "Appuyer longuement ici pour coller si vous êtes sur mobile"
     :bug-report/inspector-page-placeholder "Appuyer longuement ici pour coller si vous êtes sur mobile"
     :bug-report/inspector-page-tip "Quelque chose ne va pas ? Pas de problème, cliquez pour retourner à…"
     :bug-report/inspector-page-tip "Quelque chose ne va pas ? Pas de problème, cliquez pour retourner à…"
     :bug-report/main-desc "Pouvez-vous nous aider en signalant un bogue ? Nous…"
     :bug-report/main-desc "Pouvez-vous nous aider en signalant un bogue ? Nous…"
@@ -632,7 +631,6 @@
     :page/illegal-page-name "Nom de page interdit !"
     :page/illegal-page-name "Nom de page interdit !"
     :page/logseq-is-having-a-problem "Logseq a un problème. Pour essayer de le ravoir…"
     :page/logseq-is-having-a-problem "Logseq a un problème. Pour essayer de le ravoir…"
     :page/page-already-exists "Page “{1}” existe déjà !"
     :page/page-already-exists "Page “{1}” existe déjà !"
-    :page/slide-view "Visualiser en diapositives"
     :page/something-went-wrong "Quelque chose s'est mal passé"
     :page/something-went-wrong "Quelque chose s'est mal passé"
     :page/step "Étape {1}"
     :page/step "Étape {1}"
     :page/try "Essayer"
     :page/try "Essayer"

+ 0 - 2
src/resources/dicts/id.edn

@@ -125,8 +125,6 @@
  :page/logseq-is-having-a-problem "Logseq mengalami masalah. Untuk mencoba mengembalikannya ke keadaan yang berfungsi, silakan coba langkah-langkah aman berikut ini secara berurutan:"
  :page/logseq-is-having-a-problem "Logseq mengalami masalah. Untuk mencoba mengembalikannya ke keadaan yang berfungsi, silakan coba langkah-langkah aman berikut ini secara berurutan:"
  :page/step "Langkah {1}"
  :page/step "Langkah {1}"
  :page/try "Coba"
  :page/try "Coba"
- :page/slide-view "Tampilkan sebagai slide"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "Tip: tekan "] [:code "f"] [:span.opacity-70 " untuk masuk ke mode layar penuh"]])
  :page/delete-confirmation "Apakah Anda yakin ingin menghapus halaman ini beserta berkasnya?"
  :page/delete-confirmation "Apakah Anda yakin ingin menghapus halaman ini beserta berkasnya?"
  :page/open-in-finder "Buka dalam direktori"
  :page/open-in-finder "Buka dalam direktori"
  :page/open-with-default-app "Buka dengan aplikasi default"
  :page/open-with-default-app "Buka dengan aplikasi default"

+ 0 - 2
src/resources/dicts/it.edn

@@ -509,8 +509,6 @@
  :page/illegal-page-name "Nome di pagina non ammesso!"
  :page/illegal-page-name "Nome di pagina non ammesso!"
  :page/logseq-is-having-a-problem "Logseq sta riscontrando un problema. Per tentare di farlo tornare a funzionare esegue i seguenti passi in ordine:"
  :page/logseq-is-having-a-problem "Logseq sta riscontrando un problema. Per tentare di farlo tornare a funzionare esegue i seguenti passi in ordine:"
  :page/page-already-exists "La pagina “{1}” esiste già!"
  :page/page-already-exists "La pagina “{1}” esiste già!"
- :page/slide-view "Visualizza come diapositive"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "Suggerimento: premi "] [:code "f"] [:span.opacity-70 " per andare in schermo intero"]])
  :page/something-went-wrong "Qualcosa è andato storto"
  :page/something-went-wrong "Qualcosa è andato storto"
  :page/step "Passo {1}"
  :page/step "Passo {1}"
  :page/try "Prova"
  :page/try "Prova"

+ 0 - 2
src/resources/dicts/ja.edn

@@ -134,8 +134,6 @@
  :page/logseq-is-having-a-problem "Logseqになにか問題があります。きちんと動く状態に戻すため、以下の項目を上から順番に実行してください:"
  :page/logseq-is-having-a-problem "Logseqになにか問題があります。きちんと動く状態に戻すため、以下の項目を上から順番に実行してください:"
  :page/step "ステップ{1}"
  :page/step "ステップ{1}"
  :page/try "試す"
  :page/try "試す"
- :page/slide-view "スライドとして見る"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "お役立ち情報:"] [:code "f"] [:span.opacity-70 "を押すことでフルスクリーンにできます"]])
  :page/delete-confirmation "このページとページのファイルを削除してもよいですか?"
  :page/delete-confirmation "このページとページのファイルを削除してもよいですか?"
  :page/open-in-finder "ディレクトリで開く"
  :page/open-in-finder "ディレクトリで開く"
  :page/open-with-default-app "既定のアプリで開く"
  :page/open-with-default-app "既定のアプリで開く"

+ 0 - 1
src/resources/dicts/ko.edn

@@ -385,6 +385,5 @@
  :settings-page/preferred-pasting-file-hint "활성화하면, 인터넷으로부터 이미지를 붙여넣기할 때 이미지를 다운로드한 뒤 삽입합니다. 비활성화하면, 이미지의 링크를 붙여넣습니다."
  :settings-page/preferred-pasting-file-hint "활성화하면, 인터넷으로부터 이미지를 붙여넣기할 때 이미지를 다운로드한 뒤 삽입합니다. 비활성화하면, 이미지의 링크를 붙여넣습니다."
  :settings-page/auto-expand-block-refs "확대 시 블록 참조 펼치기"
  :settings-page/auto-expand-block-refs "확대 시 블록 참조 펼치기"
  :settings-page/auto-expand-block-refs-tip "이 설정은 블록을 확대할 때 블록 참조를 자동으로 펼칠지를 결정합니다."
  :settings-page/auto-expand-block-refs-tip "이 설정은 블록을 확대할 때 블록 참조를 자동으로 펼칠지를 결정합니다."
- :page/slide-view "슬라이드로 보기"
  :settings-page/tab-keymap "단축키"
  :settings-page/tab-keymap "단축키"
  }
  }

+ 0 - 2
src/resources/dicts/nb-no.edn

@@ -624,7 +624,6 @@
  :on-boarding/tour-whiteboard-btn-next "Neste"
  :on-boarding/tour-whiteboard-btn-next "Neste"
  :page/illegal-page-name "Ulovlig sidenavn!"
  :page/illegal-page-name "Ulovlig sidenavn!"
  :page/page-already-exists "Siden “{1}” eksisterer fra før!"
  :page/page-already-exists "Siden “{1}” eksisterer fra før!"
- :page/slide-view "Vis som lysbilder"
  :page/whiteboard-to-journal-error "Whiteboard sider kan ikke bli navnet om til dagboktiter!"
  :page/whiteboard-to-journal-error "Whiteboard sider kan ikke bli navnet om til dagboktiter!"
  :plugin/auto-check-for-updates "Se etter oppdateringer automatisk"
  :plugin/auto-check-for-updates "Se etter oppdateringer automatisk"
  :plugin/installed-plugin "Innstallert utvidelse: {1}"
  :plugin/installed-plugin "Innstallert utvidelse: {1}"
@@ -668,7 +667,6 @@
  :export-save-to-file "Lagre til fil"
  :export-save-to-file "Lagre til fil"
  :export-transparent-background "Transparent bakgrunn"
  :export-transparent-background "Transparent bakgrunn"
  :bug-report/clipboard-inspector-title "Utklippstavle datainspektør"
  :bug-report/clipboard-inspector-title "Utklippstavle datainspektør"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "Tips: trykk "] [:code "f"] [:span.opacity-70 " for fullskjerm"]])
  :query/config-property-settings "Egenskapsinnstillinger for denne spørringen:"
  :query/config-property-settings "Egenskapsinnstillinger for denne spørringen:"
  :search-item/no-result "Ingen matchende resultat"
  :search-item/no-result "Ingen matchende resultat"
  :settings-permission/start-granting "Gi tillatelse"
  :settings-permission/start-granting "Gi tillatelse"

+ 0 - 2
src/resources/dicts/pl.edn

@@ -534,8 +534,6 @@
  :page/illegal-page-name                          "Nieprawidłowa nazwa strony!"
  :page/illegal-page-name                          "Nieprawidłowa nazwa strony!"
  :page/logseq-is-having-a-problem                 "Logseq ma problem. Żeby przywrócić go do działającego stanu wykonaj po kolei następujące bezpieczne kroki:"
  :page/logseq-is-having-a-problem                 "Logseq ma problem. Żeby przywrócić go do działającego stanu wykonaj po kolei następujące bezpieczne kroki:"
  :page/page-already-exists                        "Strona “{1}” już istnieje!"
  :page/page-already-exists                        "Strona “{1}” już istnieje!"
- :page/slide-view                                 "Pokaż jako slajdy"
- :page/slide-view-tip-go-fullscreen               (fn [] [[:span.opacity-70 "Wskazówka: wciśnij "] [:code "f"] [:span.opacity-70 " żeby otworzyć na pełnym ekranie"]])
  :page/something-went-wrong                       "Coś poszło nie tak"
  :page/something-went-wrong                       "Coś poszło nie tak"
  :page/step                                       "Step (1)"
  :page/step                                       "Step (1)"
  :page/try                                        "Spróbuj"
  :page/try                                        "Spróbuj"

+ 0 - 2
src/resources/dicts/pt-br.edn

@@ -130,8 +130,6 @@
  :page/logseq-is-having-a-problem "Logseq está com um problema. Para tentar fazê-lo voltar a funcionar, siga as etapas seguras a seguir:"
  :page/logseq-is-having-a-problem "Logseq está com um problema. Para tentar fazê-lo voltar a funcionar, siga as etapas seguras a seguir:"
  :page/step "Etapa {1}"
  :page/step "Etapa {1}"
  :page/try "Tentar"
  :page/try "Tentar"
- :page/slide-view "Visualizar como slides"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "Dica: pressione "] [:code "f"] [:span.opacity-70 " para ir para tela cheia"]])
  :page/delete-confirmation "Tem certeza de que deseja excluir esta página e seu arquivo?"
  :page/delete-confirmation "Tem certeza de que deseja excluir esta página e seu arquivo?"
  :page/open-in-finder "Abrir no diretório"
  :page/open-in-finder "Abrir no diretório"
  :page/open-with-default-app "Abrir com o aplicativo padrão"
  :page/open-with-default-app "Abrir com o aplicativo padrão"

+ 0 - 2
src/resources/dicts/sk.edn

@@ -130,8 +130,6 @@
  :page/logseq-is-having-a-problem                  "Logseq má problém. Skúste tieto bezpečné kroky, aby ste ho dostali do funkčného stavu:"
  :page/logseq-is-having-a-problem                  "Logseq má problém. Skúste tieto bezpečné kroky, aby ste ho dostali do funkčného stavu:"
  :page/step                                        "Krok {1}"
  :page/step                                        "Krok {1}"
  :page/try                                         "Vyskúšať"
  :page/try                                         "Vyskúšať"
- :page/slide-view                                  "Zobraziť ako prezentáciu"
- :page/slide-view-tip-go-fullscreen                (fn [] [[:span.opacity-70 "Tip: stlačte "] [:code "f"] [:span.opacity-70 " pre celú obrazovku"]])
  :page/delete-confirmation                         "Naozaj chcete odstrániť túto stránku a jej súbor?"
  :page/delete-confirmation                         "Naozaj chcete odstrániť túto stránku a jej súbor?"
  :page/open-in-finder                              "Otvoriť v adresári"
  :page/open-in-finder                              "Otvoriť v adresári"
  :page/open-with-default-app                       "Otvoriť v predvolenej aplikácii"
  :page/open-with-default-app                       "Otvoriť v predvolenej aplikácii"

+ 0 - 2
src/resources/dicts/tr.edn

@@ -134,8 +134,6 @@
  :page/logseq-is-having-a-problem "Logseq'te bir sorun var. Tekrar çalışır duruma getirmek için lütfen aşağıdaki güvenli adımları sırayla deneyin:"
  :page/logseq-is-having-a-problem "Logseq'te bir sorun var. Tekrar çalışır duruma getirmek için lütfen aşağıdaki güvenli adımları sırayla deneyin:"
  :page/step "{1}. Adım"
  :page/step "{1}. Adım"
  :page/try "Deneyin"
  :page/try "Deneyin"
- :page/slide-view "Slayt olarak görüntüle"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "İpucu: Tam ekrana geçmek için "] [:code "f"] [:span.opacity-70 " tuşuna basın"]])
  :page/delete-confirmation "Bu sayfayı ve dosyasını silmek istediğinizden emin misiniz?"
  :page/delete-confirmation "Bu sayfayı ve dosyasını silmek istediğinizden emin misiniz?"
  :page/open-in-finder "Dizini aç"
  :page/open-in-finder "Dizini aç"
  :page/open-with-default-app "Varsayılan uygulamayla aç"
  :page/open-with-default-app "Varsayılan uygulamayla aç"

+ 0 - 2
src/resources/dicts/zh-cn.edn

@@ -79,8 +79,6 @@
  :help/title-terms "条款"
  :help/title-terms "条款"
  :linked-references/filter-search "在链接的页面内搜索"
  :linked-references/filter-search "在链接的页面内搜索"
  :page/copy-page-url "复制页面 URL"
  :page/copy-page-url "复制页面 URL"
- :page/slide-view "幻灯片视图"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "小技巧: 按 "] [:code "f"] [:span.opacity-70 " 进入全屏"]])
  :plugin/contribute "✨编写和提交新插件"
  :plugin/contribute "✨编写和提交新插件"
  :right-side-bar/show-journals "显示日记"
  :right-side-bar/show-journals "显示日记"
  :select/default-prompt "请选择"
  :select/default-prompt "请选择"

+ 0 - 2
tailwind.all.css

@@ -7,8 +7,6 @@
 @import "packages/ui/src/index.css";  /* Tailwind base imported here */
 @import "packages/ui/src/index.css";  /* Tailwind base imported here */
 @import "resources/css/shui.css";
 @import "resources/css/shui.css";
 @import "inter-ui/inter.css";
 @import "inter-ui/inter.css";
-@import "reveal.js/dist/reveal.css";
-@import "reveal.js/dist/theme/black.css";
 @import "photoswipe/dist/photoswipe.css";
 @import "photoswipe/dist/photoswipe.css";
 @import "shepherd.js/dist/css/shepherd.css";
 @import "shepherd.js/dist/css/shepherd.css";
 @import "packages/amplify/dist/amplify.css";
 @import "packages/amplify/dist/amplify.css";