Browse Source

feat: add logseq.api.download_graph_db

Tienson Qin 4 years ago
parent
commit
7e4188508f
2 changed files with 11 additions and 1 deletions
  1. 0 1
      src/main/frontend/components/export.cljs
  2. 11 0
      src/main/logseq/api.cljs

+ 0 - 1
src/main/frontend/components/export.cljs

@@ -36,7 +36,6 @@
         [:li.mb-4
          [:a.font-medium {:on-click #(export/convert-repo-markdown-v2! current-repo)}
           (t :convert-markdown)]]]
-       [:a#download-as-edn.hidden]
        [:a#download-as-edn-v2.hidden]
        [:a#download-as-json-v2.hidden]
        [:a#download-as-roam-json.hidden]

+ 11 - 0
src/main/logseq/api.cljs

@@ -376,6 +376,17 @@
 
 (def ^:export custom_query db/custom-query)
 
+(defn ^:export download_graph_db
+  []
+  (when-let [repo (state/get-current-repo)]
+    (when-let [db (db/get-conn repo)]
+      (let [db-str (if db (db/db->string db) "")
+            data-str (str "data:text/edn;charset=utf-8," (js/encodeURIComponent db-str))]
+        (when-let [anchor (gdom/getElement "download")]
+          (.setAttribute anchor "href" data-str)
+          (.setAttribute anchor "download" (str (string/replace repo "/" " ") ".transit"))
+          (.click anchor))))))
+
 ;; helpers
 (defn ^:export show_msg
   ([content] (show_msg content :success))