浏览代码

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:
           name: 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:
     runs-on: ubuntu-22.04
     needs: [ compile-cljs ]
@@ -580,7 +528,7 @@ jobs:
 
   nightly-release:
     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
     steps:
       - name: Download MacOS x64 Artifacts
@@ -660,7 +608,7 @@ jobs:
   release:
     # 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' }}
-    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
     steps:
       - name: Download MacOS x64 Artifacts

+ 0 - 1
.projectile

@@ -11,7 +11,6 @@
 -/resources/static/js/katex.min.js
 -/resources/static/js/mhchem.min.js
 -/resources/static/js/mldoc.min.js
--/resources/static/js/reveal.js
 -/resources/static/js/sci.min.js
 -/resources/static/js/excalidraw.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
   "Property related util fns. Fns used in both DB and file graphs should go here"
   (:require [datascript.core :as d]
-            [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.frontend.property :as db-property]
             [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]
-  (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
   "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"
   [repo db-ident]
   (if (sqlite-util/db-based-graph? repo)
     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
   "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
 ;; ==================
 
-(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.
    Each property has a config map with the following keys:
    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
        be viewed in any context if not set
    * :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
    * :queryable? - Boolean for whether property can be queried in the query builder
    * :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/background-color {:title "Background color"
                                         :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
      :logseq.property/heading {:title "Heading"
                                :schema {:type :any :hide? true}
@@ -241,7 +235,6 @@
                                     :schema {:type :map :hide? true}}
    ;; FIXME: :logseq.property/order-list-type should updated to closed values
      :logseq.property/order-list-type {:title "List type"
-                                       :name :logseq.order-list-type
                                        :schema {:type :default
                                                 :hide? true}}
      :logseq.property.linked-references/includes {:title "Included references"
@@ -253,10 +246,10 @@
                                                   :schema {:type :node
                                                            :cardinality :many
                                                            :hide? true}}
-     :logseq.property.tldraw/page {:name :logseq.tldraw.page
+     :logseq.property.tldraw/page {:title "Tldraw Page"
                                    :schema {:type :map
                                             :hide? true}}
-     :logseq.property.tldraw/shape {:name :logseq.tldraw.shape
+     :logseq.property.tldraw/shape {:title "Tldraw Shape"
                                     :schema {:type :map
                                              :hide? true}}
 
@@ -567,17 +560,6 @@
                                                     :public? 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
   "Internal properties that are also db schema attributes"
   #{:block/alias :block/tags :block/parent
@@ -701,22 +683,6 @@
   (or (:block/title 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
   "Given a property, finds one of its closed values by name or nil if none
   found. Works for all closed value types"
@@ -752,16 +718,6 @@
   [property]
   (= (: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?
   "Indicates whether built-in property can be seen and edited by users"
   [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"
   [built-in-properties]
   (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)
-           prop-name (or title (name (:name m)))
            schema' (schema->qualified-property-keyword schema)
            [property & others] (if closed-values
                                  (db-property-build/build-closed-values
                                   db-ident
-                                  prop-name
+                                  title
                                   {:db/ident db-ident :schema schema' :closed-values closed-values}
                                   {})
                                  [(sqlite-util/build-new-property
                                    db-ident
                                    schema'
-                                   {:title prop-name})])
+                                   {:title title})])
            pvalue-tx-m (->property-value-tx-m
                         (merge property
                                ;; 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"}
              :blocks [{:block/title "some todo"
                        :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
            (->> (db-test/find-block-by-content @conn "some todo")
                 :logseq.property/status
                 :db/ident))
         "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))
         "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.extract :as extract]
             [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
   "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))
       {: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
       (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
   "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
                        vals
                        (map #(-> % :title string/lower-case keyword))))))
 
 (def file-built-in-property-names
   "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
     :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
     :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")
 
 (def query-table-special-keys
@@ -518,7 +517,7 @@
                            :ls-type
                            [[:logseq.property/ls-type (keyword prop-value)]]
                            ;; else
-                           [[(built-in-property-name-to-idents prop) prop-value]]))))
+                           [[(built-in-property-file-to-db-idents prop) prop-value]]))))
              (into {}))]
     (cond-> m
       (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
    :now :later :doing :done :canceled :cancelled :in-progress :todo :wait :waiting
    ;; 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-ease-factor :card-last-score
    :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/interactjs/dist/interact.min.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/marked/marked.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'))),
       () => gulp.src([
         'node_modules/inter-ui/inter.css',
-        'node_modules/reveal.js/dist/theme/fonts/source-sans-pro/**',
       ]).pipe(gulp.dest(path.join(outputPath, 'css'))),
       () => gulp.src('node_modules/inter-ui/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]
        (when-not db?
          ["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"
         (calc-steps)
         "Insert a calculator" :icon/calculator]
@@ -474,7 +473,7 @@
         commands)
 
 ;; Allow user to modify or extend, should specify how to extend.
-
+      
       (state/get-commands)
       (when-let [plugin-commands (seq (some->> (state/get-plugins-slash-commands)
                                                (mapv #(vec (concat % [nil :icon/puzzle])))))]

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

@@ -5,7 +5,6 @@
             [datascript.core :as d]
             [logseq.common.util :as common-util]
             [logseq.db :as ldb]
-            [logseq.db.common.property-util :as db-property-util]
             [logseq.db.common.entity-plus :as entity-plus]
             [logseq.db.sqlite.create-graph :as sqlite-create-graph]
             [logseq.graph-parser.db :as gp-db]))
@@ -85,7 +84,7 @@
         db-based? (entity-plus/db-based-graph? db)
         created-ats (map :block/created-at full-pages)
 
-            ;; build up nodes
+        ;; build up nodes
         full-pages'
         (cond->> full-pages
           created-at-filter
@@ -94,7 +93,9 @@
           (remove ldb/journal?)
           (not excluded-pages?)
           (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)
         linked (set (mapcat identity links))
         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))
       (let [content-cp (block-content config'
                                       block nil (:block/uuid block)
-                                      (:slide? config)
                                       nil)
             display-type (:logseq.property.node/display-type block)]
         (if (and display-type (not (contains? #{:quote :math} display-type)))
@@ -2271,7 +2270,6 @@
         block-ast-title (:block.temp/ast-title block)
         config (assoc config :block block)
         level (:level config)
-        slide? (boolean (:slide? config))
         block-ref? (:block-ref? config)
         block-type (or (keyword (pu/lookup block :logseq.property/ls-type)) :default)
         html-export? (:html-export? config)
@@ -2339,12 +2337,10 @@
         (concat
          (when (config/local-file-based-graph? (state/get-current-repo))
            [(when (and (not pre-block?)
-                       (not html-export?)
-                       (not slide?))
+                       (not html-export?))
               (file-block/block-checkbox block (str "mr-1 cursor")))
             (when (and (not pre-block?)
-                       (not html-export?)
-                       (not slide?))
+                       (not html-export?))
               (file-block/marker-switch block))
             (file-block/marker-cp block)
             (file-block/priority-cp block)])
@@ -2648,13 +2644,12 @@
                 (state/set-selection-start-block! block-id)))))))))
 
 (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?)
         drag-to-block (rum/react *drag-to-block)]
     (when (and
            (= block-id drag-to-block)
            dragging?
-           (not slide?)
            (not (:block/pre-block? block)))
       (let [move-to (rum/react *move-to)]
         (when-not
@@ -2696,9 +2691,9 @@
   [state block tag config popup-opts]
   (let [*hover? (::hover? 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))
-      :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-out #(reset! *hover-container? false)}
      [:div.flex.items-center
@@ -2727,7 +2722,7 @@
                                  "Remove tag"))])
                            popup-opts))}
       (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"
           :style {:margin-top 1}
           :on-pointer-down
@@ -2872,7 +2867,7 @@
           (clock/seconds->days:hours:minutes:seconds time-spent))]))))
 
 (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)
         db-based? (config/db-based-graph? (state/get-current-repo))
         scheduled (when-not db-based? (:block/scheduled block))
@@ -2940,7 +2935,7 @@
     [:div.block-content.inline
      (cond-> {:id (str "block-content-" uuid)
               :key (str "block-content-" uuid)}
-       (not slide?)
+       true
        (merge attrs))
 
      [:<>
@@ -2974,7 +2969,6 @@
                  (let [hidden? (property-file/properties-hidden? (:block/properties block))]
                    (not hidden?))
                  (not (and block-ref? (or (seq ast-title) (seq ast-body))))
-                 (not (:slide? config))
                  (not= block-type :whiteboard-shape)
                  (not (:table-block-title? config)))
         (properties-cp config block))
@@ -2989,18 +2983,19 @@
 (rum/defc block-refs-count < rum/static
   [block block-refs-count' *hide-block-refs?]
   (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
   [_config {:block/keys [uuid] :as _block}]
@@ -3020,7 +3015,7 @@
       [:div.more (ui/icon "dots-circle-horizontal" {:size 18})])]])
 
 (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)
         query (:logseq.property/query block)]
     (ui/catch-error
@@ -3048,7 +3043,7 @@
                                        (editor-handler/unhighlight-blocks!)
                                        (state/set-editing! edit-input-id content block "" {:db (db/get-db)
                                                                                            :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/local false ::hover?)
@@ -3058,7 +3053,6 @@
                  (or (:block/format block) :markdown))
         editor-box (state/get-component :editor/box)
         editor-id (str "editor-" edit-input-id)
-        slide? (:slide? config)
         block-reference-only? (some->
                                (:block/title block)
                                string/trim
@@ -3089,8 +3083,8 @@
                         :format format}
                        edit-input-id
                        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?)
                      (not named?)
@@ -3110,14 +3104,16 @@
                 {:on-pointer-down (fn [e]
                                     (util/stop e)
                                     (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)
          [: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)
                         (:property? config))
@@ -3519,7 +3515,6 @@
         breadcrumb-show? (:breadcrumb-show? config)
         *show-left-menu? (::show-block-left-menu? container-state)
         *show-right-menu? (::show-block-right-menu? container-state)
-        slide? (boolean (:slide? config))
         doc-mode? (:document/mode? config)
         embed? (:embed? config)
         page-embed? (:page-embed? config)
@@ -3587,7 +3582,7 @@
        level
        (assoc :level level)
 
-       (not slide?)
+       true
        (merge attrs)
 
        (or reference? (and embed? (not page-embed?)))
@@ -3606,7 +3601,7 @@
 
      ;; only render this for the first block in each container
      (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)
        [:div.block-main-container.flex.flex-row.gap-1
@@ -3627,7 +3622,7 @@
          :on-mouse-leave (fn [_e]
                            (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?
                           (= uuid (:block/uuid (state/get-edit-block))))]
             (block-control (assoc config :hide-bullet? (:page-title? config))
@@ -3719,7 +3714,7 @@
                          (dissoc :original-block :data))]
          (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
   [container-state repo config* block opts]
@@ -4041,7 +4036,7 @@
              (cond
                (nil? inside-portal?) nil
 
-               (or (:slide? config) inside-portal?)
+               inside-portal?
                (highlight/highlight (str (random-uuid))
                                     {:class (str "language-" language)
                                      :data-lang language}
@@ -4134,8 +4129,7 @@
         (->elem :div.is-paragraph (map-inline config l)))
 
       ["Horizontal_Rule"]
-      (when-not (:slide? config)
-        [:hr])
+      [:hr]
       ["Heading" h]
       (block-container config h)
       ["List" l]

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

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

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

@@ -3,14 +3,30 @@
   (:require [clojure.walk :as walk]
             [frontend.extensions.sci :as sci]
             [frontend.handler.common :as common-handler]
-            [frontend.handler.db-based.property.util :as db-pu]
             [goog.string :as gstring]
             [goog.string.format]
             [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
-  [ast repo result]
+  [ast* repo result]
   (let [ast (walk/prewalk
              (fn [f]
                (if (and (list? f)
@@ -25,26 +41,21 @@
                     (first f)
                     (list 'map (second f) 'result)))
                  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
      (fn [f]
        (cond
          (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)
                  int? (some integer? vals)]
              `(~'fn [~'b]
@@ -65,9 +76,12 @@
                        (mapcat val query-result*)
                        query-result*)
         repo (state/get-current-repo)
+        db (db-conn/get-db 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))
                       (common-handler/safe-read-string "failed to parse function")
                       (normalize-query-function repo query-result')

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

@@ -106,16 +106,6 @@
             {:title   (t :page/delete)
              :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
           ;; (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!

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

@@ -13,7 +13,6 @@
             [frontend.db :as db]
             [frontend.db.async :as db-async]
             [frontend.db.rtc.debug-ui :as rtc-debug-ui]
-            [frontend.extensions.slide :as slide]
             [frontend.handler.editor :as editor-handler]
             [frontend.handler.route :as route-handler]
             [frontend.handler.ui :as ui-handler]
@@ -25,7 +24,6 @@
             [logseq.shui.ui :as shui]
             [medley.core :as medley]
             [promesa.core :as p]
-            [reitit.frontend.easy :as rfe]
             [rum.core :as rum]))
 
 (rum/defc toggle
@@ -129,13 +127,6 @@
                                                                            [repo new-value block-type]))})
           (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
        [[:.flex.items-center (ui/icon "command" {:class "text-md mr-2"}) (t :help/shortcuts)]
         (shortcut-settings)]

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

@@ -29,8 +29,7 @@
   get-block-immediate-children get-block-page
   get-file file-exists?  get-files-full
   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
   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]
             [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
   "Get a property's name given its id"
   [e]
@@ -17,16 +12,10 @@
     (db-property/property-value-content 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
   "Given a DB graph's properties, returns a readable properties map with keys as
   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 {:keys [original-key? key-fn]
                 :or {key-fn identity}}]

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

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

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

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

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

@@ -428,8 +428,6 @@
  :page/open-in-finder                               "Obrir ubicació del arxiu"
  :page/open-with-default-app                        "Obrir amb la aplicació preestablerta"
  :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/step                                         "Pas {1}"
  :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/step                                        "Krok {1}"
  :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/open-in-finder                              "Otevřít v adresáři"
  :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-with-default-app "Mit Standard-Anwendung öffnen"
  :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/step "Schritt {1}"
  :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/step "Step {1}"
  :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/db-delete-confirmation "Are you sure you want to delete this page?"
  :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-with-default-app                        "Abrir con la aplicación predeterminada"
  :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/step                                         "Paso {1}"
  :page/try                                          "Intentar"

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

@@ -106,8 +106,6 @@
  :page/logseq-is-having-a-problem "لاگ‌سیک دچار مشکلی شده است. برای بازگرداندن آن به حالت قابل استفاده لطفا گام‌های زیر را به ترتیب انجام دهید:"
  :page/step "گام {1}"
  :page/try "امتحان کنید"
- :page/slide-view "نمایش به صورت اسلاید"
- :page/slide-view-tip-go-fullscreen (fn [] [[:span.opacity-70 "نکته: دکمه "] [:code "f"] [:span.opacity-70 " را برای رفتن به حالت تمام صفحه بفشارید"]])
  :page/delete-confirmation "مطمئنید که می‌خواید این برگه به همراه پرونده‌اش را پاک کنید؟"
  :page/open-in-finder "باز کردن در پوشه"
  :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-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"
-    :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-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…"
@@ -632,7 +631,6 @@
     :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/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/step "Étape {1}"
     :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/step "Langkah {1}"
  :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/open-in-finder "Buka dalam direktori"
  :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/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/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/step "Passo {1}"
  :page/try "Prova"

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

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

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

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

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

@@ -624,7 +624,6 @@
  :on-boarding/tour-whiteboard-btn-next "Neste"
  :page/illegal-page-name "Ulovlig sidenavn!"
  :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!"
  :plugin/auto-check-for-updates "Se etter oppdateringer automatisk"
  :plugin/installed-plugin "Innstallert utvidelse: {1}"
@@ -668,7 +667,6 @@
  :export-save-to-file "Lagre til fil"
  :export-transparent-background "Transparent bakgrunn"
  :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:"
  :search-item/no-result "Ingen matchende resultat"
  :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/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/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/step                                       "Step (1)"
  :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/step "Etapa {1}"
  :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/open-in-finder "Abrir no diretório"
  :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/step                                        "Krok {1}"
  :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/open-in-finder                              "Otvoriť v adresári"
  :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/step "{1}. Adım"
  :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/open-in-finder "Dizini 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 "条款"
  :linked-references/filter-search "在链接的页面内搜索"
  :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 "✨编写和提交新插件"
  :right-side-bar/show-journals "显示日记"
  :select/default-prompt "请选择"

+ 0 - 2
tailwind.all.css

@@ -7,8 +7,6 @@
 @import "packages/ui/src/index.css";  /* Tailwind base imported here */
 @import "resources/css/shui.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 "shepherd.js/dist/css/shepherd.css";
 @import "packages/amplify/dist/amplify.css";