wip whiteboard page

pull/6112/head
Peng Xiao 2022-07-04 00:00:08 +08:00
parent 0584edd4d8
commit 4de59c6d63
6 changed files with 29 additions and 7 deletions

View File

@ -88,6 +88,9 @@
;; block's file ;; block's file
:block/file {:db/valueType :db.type/ref} :block/file {:db/valueType :db.type/ref}
;; whether page is a whiteboard
:block/whiteboard? {}
;; file ;; file
:file/path {:db/unique :db.unique/identity} :file/path {:db/unique :db.unique/identity}
;; only store the content of logseq's files ;; only store the content of logseq's files

View File

@ -232,6 +232,7 @@
(defonce default-journals-directory "journals") (defonce default-journals-directory "journals")
(defonce default-pages-directory "pages") (defonce default-pages-directory "pages")
(defonce default-whiteboards-directory "whiteboards")
(defn get-pages-directory (defn get-pages-directory
[] []
@ -241,6 +242,10 @@
[] []
(or (state/get-journals-directory) default-journals-directory)) (or (state/get-journals-directory) default-journals-directory))
(defn get-whiteboards-directory
[]
(or (state/get-whiteboards-directory) default-whiteboards-directory))
(defonce local-repo "local") (defonce local-repo "local")
(defn demo-graph? (defn demo-graph?

View File

@ -38,6 +38,7 @@
[frontend.format.block :as block] [frontend.format.block :as block]
[goog.functions :refer [debounce]])) [goog.functions :refer [debounce]]))
;; FIXME: add whiteboard
(defn- get-directory (defn- get-directory
[journal?] [journal?]
(if journal? (if journal?
@ -98,7 +99,9 @@
(or (or
(:block/original-name page) (:block/original-name page)
(:block/name page))) (:block/name page)))
page (if (seq properties) (assoc page :block/properties properties) page) page (merge page
(when (seq properties) {:block/properties properties})
(when whiteboard? {:block/whiteboard? whiteboard?}))
page-empty? (db/page-empty? (state/get-current-repo) (:block/name page))] page-empty? (db/page-empty? (state/get-current-repo) (:block/name page))]
(cond (cond
(not page-empty?) (not page-empty?)
@ -123,7 +126,7 @@
:uuid - when set, use this uuid instead of generating a new one." :uuid - when set, use this uuid instead of generating a new one."
([title] ([title]
(create! title {})) (create! title {}))
([title {:keys [redirect? create-first-block? format properties split-namespace? journal? whiteboard? uuid] ([title {:keys [redirect? create-first-block? format properties split-namespace? journal? uuid whiteboard?]
:or {redirect? true :or {redirect? true
create-first-block? true create-first-block? true
format nil format nil
@ -148,11 +151,11 @@
txs (->> pages txs (->> pages
;; for namespace pages, only last page need properties ;; for namespace pages, only last page need properties
drop-last drop-last
(mapcat #(build-page-tx format nil % journal?)) (mapcat #(build-page-tx format nil % journal? whiteboard?))
(remove nil?) (remove nil?)
(remove (fn [m] (remove (fn [m]
(some? (db/entity [:block/name (:block/name m)]))))) (some? (db/entity [:block/name (:block/name m)])))))
last-txs (build-page-tx format properties (last pages) journal?) last-txs (build-page-tx format properties (last pages) journal? whiteboard?)
txs (concat txs last-txs)] txs (concat txs last-txs)]
(when (seq txs) (when (seq txs)
(db/transact! txs))) (db/transact! txs)))

View File

@ -159,6 +159,7 @@
(let [last-part (last (string/split path "/"))] (let [last-part (last (string/split path "/"))]
(contains? #{config/app-name (contains? #{config/app-name
gp-config/default-draw-directory gp-config/default-draw-directory
(config/get-whiteboards-directory)
(config/get-journals-directory) (config/get-journals-directory)
(config/get-pages-directory)} (config/get-pages-directory)}
last-part))))) last-part)))))

View File

@ -113,20 +113,23 @@
(defn- transact-file-tx-if-not-exists! (defn- transact-file-tx-if-not-exists!
[page ok-handler] [page ok-handler]
(println page)
(when-let [repo (state/get-current-repo)] (when-let [repo (state/get-current-repo)]
(when (:block/name page) (when (:block/name page)
(let [format (name (get page :block/format (let [format (name (get page :block/format
(state/get-preferred-format))) (state/get-preferred-format)))
title (string/capitalize (:block/name page)) title (string/capitalize (:block/name page))
whiteboard-page? (:block/whiteboard? page)
journal-page? (date/valid-journal-title? title) journal-page? (date/valid-journal-title? title)
filename (if journal-page? filename (if journal-page?
(date/date->file-name journal-page?) (date/date->file-name journal-page?)
(-> (or (:block/original-name page) (:block/name page)) (-> (or (:block/original-name page) (:block/name page))
(util/file-name-sanity))) (util/file-name-sanity)))
path (str path (str
(if journal-page? (cond
(config/get-journals-directory) journal-page? (config/get-journals-directory)
(config/get-pages-directory)) whiteboard-page? (config/get-whiteboards-directory)
:else (config/get-pages-directory))
"/" "/"
filename filename
"." "."

View File

@ -457,6 +457,13 @@
(:journals-directory (get-config repo))) (:journals-directory (get-config repo)))
"journals")) "journals"))
(defn get-whiteboards-directory
[]
(or
(when-let [repo (get-current-repo)]
(:whiteboards-directory (get-config repo)))
"whiteboards"))
(defn org-mode-file-link? (defn org-mode-file-link?
[repo] [repo]
(:org-mode/insert-file-link? (get-config repo))) (:org-mode/insert-file-link? (get-config repo)))