fix: roam import

This commit is contained in:
Tienson Qin
2020-12-11 18:24:09 +08:00
parent ee0576b543
commit 449c9d9e65
4 changed files with 34 additions and 21 deletions

View File

@@ -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]

View File

@@ -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]

View File

@@ -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])))

View File

@@ -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)