fix: respect user's preferred format for a specific repo

pull/645/head
Tienson Qin 2020-11-07 19:11:39 +08:00
parent 01682c6275
commit 553b1079b1
3 changed files with 60 additions and 65 deletions

View File

@ -3,7 +3,7 @@
@import "./reveal.min.css";
@import "./reveal_black.min.css";
@import "./katex.min.css";
@import "./tailwind.build.css"; /* Build by gulp. Check `_buildTailwind` for more detail */
@import "../../static/css/tailwind.build.css"; /* Build by gulp. Check `_buildTailwind` for more detail */
@import "./common.css";
@import "./datepicker.css";
@import "./highlight.css";

View File

@ -29,59 +29,6 @@
;; 1. User changes the config.edn directly in logseq.com (fn: alter-file)
;; 2. Git pulls the new change (fn: load-files)
(defn load-repo-to-db!
[repo-url diffs first-clone?]
(let [load-contents (fn [files delete-files delete-blocks re-render?]
(file-handler/load-files-contents!
repo-url
files
(fn [contents]
(state/set-state! :repo/loading-files? false)
(state/set-state! :repo/importing-to-db? true)
(let [parsed-files (filter
(fn [[file _]]
(let [format (format/get-format file)]
(contains? config/mldoc-support-formats format)))
contents)
blocks-pages (if (seq parsed-files)
(db/extract-all-blocks-pages repo-url parsed-files)
[])]
(db/reset-contents-and-blocks! repo-url contents blocks-pages delete-files delete-blocks)
(let [config-file (str config/app-name "/" config/config-file)]
(when (contains? (set files) config-file)
(when-let [content (get contents config-file)]
(file-handler/restore-config! repo-url content true))))
;; (let [metadata-file (str config/app-name "/" config/metadata-file)]
;; (when (contains? (set files) metadata-file)
;; (when-let [content (get contents metadata-file)]
;; (let [{:keys [tx-data]} (reader/read-string content)]
;; (db/transact! repo-url tx-data)))))
(state/set-state! :repo/importing-to-db? false)
(when re-render?
(ui-handler/re-render-root!))))))]
(if first-clone?
(->
(p/let [files (file-handler/load-files repo-url)]
(load-contents files nil nil false))
(p/catch (fn [error]
(println "loading files failed: ")
(js/console.dir error)
(state/set-state! :repo/loading-files? false))))
(when (seq diffs)
(let [filter-diffs (fn [type] (->> (filter (fn [f] (= type (:type f))) diffs)
(map :path)))
remove-files (filter-diffs "remove")
modify-files (filter-diffs "modify")
add-files (filter-diffs "add")
delete-files (if (seq remove-files)
(db/delete-files remove-files))
delete-blocks (db/delete-blocks repo-url (concat remove-files modify-files))
delete-pages (if (seq remove-files)
(db/delete-pages-by-files remove-files)
[])
add-or-modify-files (util/remove-nils (concat add-files modify-files))]
(load-contents add-or-modify-files (concat delete-files delete-pages) delete-blocks true))))))
(defn show-install-error!
[repo-url title]
(notification/show!
@ -196,7 +143,7 @@
(create-today-journal-if-not-exists repo-url nil))
([repo-url content]
(let [repo-dir (util/get-repo-dir repo-url)
format (state/get-preferred-format)
format (state/get-preferred-format repo-url)
title (date/today)
file-name (date/journal-title->default title)
default-content (util/default-content-with-title format title false)
@ -240,6 +187,55 @@
(create-today-journal-if-not-exists repo-url)
(create-contents-file repo-url)))
(defn load-repo-to-db!
[repo-url diffs first-clone?]
(let [load-contents (fn [files delete-files delete-blocks re-render?]
(file-handler/load-files-contents!
repo-url
files
(fn [contents]
(state/set-state! :repo/loading-files? false)
(state/set-state! :repo/importing-to-db? true)
(let [parsed-files (filter
(fn [[file _]]
(let [format (format/get-format file)]
(contains? config/mldoc-support-formats format)))
contents)
blocks-pages (if (seq parsed-files)
(db/extract-all-blocks-pages repo-url parsed-files)
[])]
(db/reset-contents-and-blocks! repo-url contents blocks-pages delete-files delete-blocks)
(let [config-file (str config/app-name "/" config/config-file)]
(if (contains? (set files) config-file)
(when-let [content (get contents config-file)]
(file-handler/restore-config! repo-url content true))))
(when first-clone? (create-default-files! repo-url))
(state/set-state! :repo/importing-to-db? false)
(when re-render?
(ui-handler/re-render-root!))))))]
(if first-clone?
(->
(p/let [files (file-handler/load-files repo-url)]
(load-contents files nil nil false))
(p/catch (fn [error]
(println "loading files failed: ")
(js/console.dir error)
(state/set-state! :repo/loading-files? false))))
(when (seq diffs)
(let [filter-diffs (fn [type] (->> (filter (fn [f] (= type (:type f))) diffs)
(map :path)))
remove-files (filter-diffs "remove")
modify-files (filter-diffs "modify")
add-files (filter-diffs "add")
delete-files (if (seq remove-files)
(db/delete-files remove-files))
delete-blocks (db/delete-blocks repo-url (concat remove-files modify-files))
delete-pages (if (seq remove-files)
(db/delete-pages-by-files remove-files)
[])
add-or-modify-files (util/remove-nils (concat add-files modify-files))]
(load-contents add-or-modify-files (concat delete-files delete-pages) delete-blocks true))))))
(defn persist-repo!
[repo]
(when-let [files-conn (db/get-files-conn repo)]
@ -251,9 +247,6 @@
[repo-url diffs first-clone?]
(when (or diffs first-clone?)
(p/let [_ (load-repo-to-db! repo-url diffs first-clone?)]
(when first-clone?
(create-default-files! repo-url))
(when first-clone?
(migration-handler/show!)))))

View File

@ -167,13 +167,15 @@
(some? (:page (get-default-home))))
(defn get-preferred-format
[]
(keyword
(or
(when-let [fmt (:preferred-format (get-config))]
(string/lower-case (name fmt)))
([]
(get-preferred-format (get-current-repo)))
([repo-url]
(keyword
(or
(when-let [fmt (:preferred-format (get-config repo-url))]
(string/lower-case (name fmt)))
(get-in @state [:me :preferred_format] "markdown"))))
(get-in @state [:me :preferred_format] "markdown")))))
(defn get-preferred-workflow
[]
@ -275,7 +277,7 @@
;; (remove #(= leader-parent %)))]
;; (prn "followers: " (count followers))
;; ))
))
))
(defn get-edit-input-id
[]