diff --git a/deps/db/src/logseq/db/frontend/class.cljs b/deps/db/src/logseq/db/frontend/class.cljs index 9e06fd7342..a6589cd5a7 100644 --- a/deps/db/src/logseq/db/frontend/class.cljs +++ b/deps/db/src/logseq/db/frontend/class.cljs @@ -110,7 +110,7 @@ (def private-tags "Built-in classes that are private and should not be used by a user directly. These used to be in block/type" - (set/union internal-tags + (set/union (disj internal-tags :logseq.class/Root) #{:logseq.class/Journal :logseq.class/Whiteboard})) (def hidden-tags diff --git a/src/main/frontend/components/export.cljs b/src/main/frontend/components/export.cljs index 5ad9e26ff9..b439005cd9 100644 --- a/src/main/frontend/components/export.cljs +++ b/src/main/frontend/components/export.cljs @@ -103,24 +103,22 @@ [:div [:a.font-medium {:on-click #(export/export-repo-as-zip! current-repo)} (t :export-zip)]]) + (when db-based? [:div [:a.font-medium {:on-click #(db-export-handler/export-repo-as-db-edn! current-repo)} (t :export-db-edn)]]) - (when db-based? + + (when-not (mobile-util/native-platform?) [:div - [:a.font-medium {:on-click #(export/export-repo-as-debug-transit! current-repo)} - "Export debug transit file"] - [:p.text-sm.opacity-70 "Any sensitive data will be removed in the exported transit file, you can send it to us for debugging."]]) + [:a.font-medium {:on-click #(export-text/export-repo-as-markdown! current-repo)} + (t :export-markdown)]]) (when (util/electron?) [:div [:a.font-medium {:on-click #(export/download-repo-as-html! current-repo)} (t :export-public-pages)]]) - (when-not (or (mobile-util/native-platform?) db-based?) - [:div - [:a.font-medium {:on-click #(export-text/export-repo-as-markdown! current-repo)} - (t :export-markdown)]]) + (when-not (or (mobile-util/native-platform?) db-based?) [:div [:a.font-medium {:on-click #(export-opml/export-repo-as-opml! current-repo)} @@ -129,6 +127,11 @@ [:div [:a.font-medium {:on-click #(export/export-repo-as-roam-json! current-repo)} (t :export-roam-json)]]) + (when db-based? + [:div + [:a.font-medium {:on-click #(export/export-repo-as-debug-transit! current-repo)} + "Export debug transit file"] + [:p.text-sm.opacity-70.mb-0 "Any sensitive data will be removed in the exported transit file, you can send it to us for debugging."]]) (when (and db-based? util/web-platform? (utils/nfsSupported)) [:div diff --git a/src/main/frontend/handler/export/common.cljs b/src/main/frontend/handler/export/common.cljs index 8d29cc3319..2ead1c4947 100644 --- a/src/main/frontend/handler/export/common.cljs +++ b/src/main/frontend/handler/export/common.cljs @@ -195,12 +195,13 @@ (state/content - [repo] - (state/content repo)) + [repo options] + (state/content repo options)) (defn content (content repo)] + (p/let [page->content (content repo + {:export-bullet-indentation (state/get-export-bullet-indentation)})] (clojure.core/map (fn [[page-title content]] {:path (str page-title "." suffix) :content content diff --git a/src/main/frontend/handler/export/text.cljs b/src/main/frontend/handler/export/text.cljs index 1c3864a90c..53347b2119 100644 --- a/src/main/frontend/handler/export/text.cljs +++ b/src/main/frontend/handler/export/text.cljs @@ -1,6 +1,5 @@ (ns frontend.handler.export.text "export blocks/pages as text" - (:refer-clojure :exclude [map filter mapcat concat remove newline]) (:require [clojure.string :as string] [frontend.config :as config] [frontend.db :as db] @@ -545,9 +544,9 @@ (defn export-repo-as-markdown! "TODO: indent-style and remove-options" [repo] - (p/let [files (util/profile :get-file-content (common/content - [repo] + [repo options] (when-let [conn (worker-state/get-datascript-conn repo)] - (worker-export/get-all-page->content repo @conn))) + (worker-export/get-all-page->content repo @conn options))) (def-thread-api :thread-api/validate-db [repo] diff --git a/src/main/frontend/worker/export.cljs b/src/main/frontend/worker/export.cljs index 39018c5f96..3e263f8da9 100644 --- a/src/main/frontend/worker/export.cljs +++ b/src/main/frontend/worker/export.cljs @@ -6,7 +6,8 @@ [logseq.db :as ldb] [logseq.db.sqlite.util :as sqlite-util] [logseq.graph-parser.property :as gp-property] - [logseq.outliner.tree :as otree])) + [logseq.outliner.tree :as otree] + [logseq.db.sqlite.create-graph :as sqlite-create-graph])) (defn- safe-keywordize [block] @@ -45,12 +46,18 @@ (assoc page' :block/children children)))))) (defn get-all-page->content - [repo db] - (->> (d/datoms db :avet :block/name) - (map (fn [d] - (let [e (d/entity db (:e d))] + [repo db options] + (let [filter-fn (if (ldb/db-based-graph? db) + (fn [ent] + (or (not (:logseq.property/built-in? ent)) + (contains? sqlite-create-graph/built-in-pages-names (:block/title ent)))) + (constantly true))] + (->> (d/datoms db :avet :block/name) + (map #(d/entity db (:e %))) + (filter filter-fn) + (map (fn [e] [(:block/title e) - (common-file/block->content repo db (:block/uuid e) {} {})]))))) + (common-file/block->content repo db (:block/uuid e) {} options)]))))) (defn get-debug-datoms [conn ^Object db]