Merge branch 'master' into feat/db

This commit is contained in:
Tienson Qin
2023-06-21 14:09:16 +08:00
199 changed files with 4577 additions and 2565 deletions

View File

@@ -10,6 +10,8 @@
[logseq.graph-parser.util.page-ref :as page-ref]
[frontend.format.mldoc :as mldoc]
[logseq.graph-parser.text :as text]
[frontend.db :as db]
[frontend.state :as state]
[frontend.util.cursor :as cursor]))
(defn hidden-properties
@@ -414,3 +416,50 @@
(util/format
(config/properties-wrapper-pattern page-format)
(string/join "\n" lines))))
(def hidden-editable-page-properties
"Properties that are hidden in the pre-block (page property)"
#{:title :filters :icon})
(assert (set/subset? hidden-editable-page-properties (gp-property/editable-built-in-properties))
"Hidden editable page properties must be valid editable properties")
(def hidden-editable-block-properties
"Properties that are hidden in a block (block property)"
(into #{:logseq.query/nlp-date}
gp-property/editable-view-and-table-properties))
(assert (set/subset? hidden-editable-block-properties (gp-property/editable-built-in-properties))
"Hidden editable page properties must be valid editable properties")
(defn- add-aliases-to-properties
"Adds aliases to a page when a page has aliases and is also an alias of other pages"
[properties page-id]
(let [repo (state/get-current-repo)
aliases (db/get-page-alias-names repo
(:block/name (db/pull page-id)))]
(if (seq aliases)
(if (:alias properties)
(update properties :alias (fn [c]
(util/distinct-by string/lower-case (concat c aliases))))
(assoc properties :alias aliases))
properties)))
(defn get-visible-ordered-properties
"Given a block's properties, order of properties and any display context,
returns a tuple of property pairs that are visible when not being edited"
[properties* properties-order {:keys [pre-block? page-id]}]
(let [dissoc-keys (fn [m keys] (apply dissoc m keys))
properties (cond-> (update-keys properties* keyword)
true
(dissoc-keys (hidden-properties))
pre-block?
(dissoc-keys hidden-editable-page-properties)
(not pre-block?)
(dissoc-keys hidden-editable-block-properties)
pre-block?
(add-aliases-to-properties page-id))]
(if (seq properties-order)
(keep (fn [k] (when (contains? properties k) [k (get properties k)]))
(distinct properties-order))
properties*)))