mirror of
https://github.com/logseq/logseq.git
synced 2026-05-24 20:54:09 +00:00
fix: roam import
This commit is contained in:
18
src/main/frontend/external/roam.cljs
vendored
18
src/main/frontend/external/roam.cljs
vendored
@@ -92,13 +92,17 @@
|
||||
(defn ->file
|
||||
[page-data]
|
||||
(let [{:keys [create-time title children edit-time]} page-data
|
||||
initial-level 2]
|
||||
{:title title
|
||||
:created-at create-time
|
||||
:last-modified-at edit-time
|
||||
:text (when-let [text (children->text children initial-level)]
|
||||
(let [front-matter (util/format "---\ntitle: %s\n---\n\n" title)]
|
||||
(str front-matter (transform text))))}))
|
||||
initial-level 2
|
||||
text (when (seq children)
|
||||
(when-let [text (children->text children initial-level)]
|
||||
(let [front-matter (util/format "---\ntitle: %s\n---\n\n" title)]
|
||||
(str front-matter (transform text)))))]
|
||||
(when (and (not (string/blank? title))
|
||||
text)
|
||||
{:title title
|
||||
:created-at create-time
|
||||
:last-modified-at edit-time
|
||||
:text text})))
|
||||
|
||||
(defn ->files
|
||||
[edn-data]
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
(ns frontend.handler.external
|
||||
(:require [frontend.external :as external]
|
||||
[frontend.handler.file :as file-handler]
|
||||
[frontend.handler.repo :as repo-handler]
|
||||
[frontend.handler.common :as common-handler]
|
||||
[frontend.state :as state]
|
||||
[frontend.date :as date]
|
||||
[frontend.config :as config]
|
||||
[clojure.string :as string]
|
||||
[promesa.core :as p]
|
||||
[frontend.db :as db]))
|
||||
|
||||
(defonce debug-files (atom nil))
|
||||
(defn index-files!
|
||||
[repo files git-add-cb]
|
||||
(let [titles (->> files
|
||||
@@ -26,13 +29,17 @@
|
||||
(date/journal-title->default title)
|
||||
(string/replace title "/" "-"))
|
||||
".md")]
|
||||
[path text]))))
|
||||
files)]
|
||||
;; TODO: git add is quite slow
|
||||
(file-handler/alter-files repo files {:add-history? false
|
||||
:update-status? false
|
||||
:reset? true
|
||||
:git-add-cb git-add-cb})
|
||||
{:file/path path
|
||||
:file/content text}))))
|
||||
files)
|
||||
files (remove nil? files)
|
||||
_ (reset! debug-files files)]
|
||||
(repo-handler/parse-files-and-load-to-db! repo files nil)
|
||||
(let [files (map (fn [{:file/keys [path content]}] [path content]) files)]
|
||||
(file-handler/alter-files repo files {:add-history? false
|
||||
:update-db? false
|
||||
:update-status? false
|
||||
:git-add-cb git-add-cb}))
|
||||
(let [journal-pages-tx (let [titles (filter date/valid-journal-title? titles)]
|
||||
(map
|
||||
(fn [title]
|
||||
|
||||
@@ -162,16 +162,18 @@
|
||||
:path-params {:path path}}))))))
|
||||
|
||||
(defn alter-files
|
||||
[repo files {:keys [add-history? update-status? git-add-cb reset?]
|
||||
[repo files {:keys [add-history? update-status? git-add-cb reset? update-db?]
|
||||
:or {add-history? true
|
||||
update-status? true
|
||||
reset? false}
|
||||
reset? false
|
||||
update-db? true}
|
||||
:as opts}]
|
||||
;; update db
|
||||
(doseq [[path content] files]
|
||||
(if reset?
|
||||
(db/reset-file! repo path content)
|
||||
(db/set-file-content! repo path content)))
|
||||
(when update-db?
|
||||
(doseq [[path content] files]
|
||||
(if reset?
|
||||
(db/reset-file! repo path content)
|
||||
(db/set-file-content! repo path content))))
|
||||
|
||||
(when-let [chan (state/get-file-write-chan)]
|
||||
(async/put! chan [repo files opts])))
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
(create-contents-file repo-url)
|
||||
(create-custom-theme repo-url))
|
||||
|
||||
(defn- parse-files-and-load-to-db!
|
||||
(defn parse-files-and-load-to-db!
|
||||
[repo-url files {:keys [first-clone? delete-files delete-blocks re-render? re-render-opts] :as opts
|
||||
:or {re-render? true}}]
|
||||
(state/set-loading-files! false)
|
||||
|
||||
Reference in New Issue
Block a user