mirror of https://github.com/logseq/logseq
wip whiteboard page
parent
0584edd4d8
commit
4de59c6d63
|
@ -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
|
||||||
|
|
|
@ -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?
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
|
@ -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)))))
|
||||||
|
|
|
@ -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
|
||||||
"."
|
"."
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
Loading…
Reference in New Issue