mirror of https://github.com/logseq/logseq
Fix page block not saving invalid-properties
parent
340fb8cf9a
commit
b47826d69d
|
@ -42,12 +42,12 @@
|
|||
(defn- build-page-entity
|
||||
[properties file page-name page ref-tags {:keys [date-formatter db]}]
|
||||
(let [alias (:alias properties)
|
||||
alias (if (string? alias) [alias] alias)
|
||||
aliases (and alias
|
||||
alias' (if (string? alias) [alias] alias)
|
||||
aliases (and alias'
|
||||
(seq (remove #(or (= page-name (gp-util/page-name-sanity-lc %))
|
||||
(string/blank? %)) ;; disable blank alias
|
||||
alias)))
|
||||
aliases (->>
|
||||
alias')))
|
||||
aliases' (->>
|
||||
(map
|
||||
(fn [alias]
|
||||
(let [page-name (gp-util/page-name-sanity-lc alias)
|
||||
|
@ -65,17 +65,26 @@
|
|||
:block/alias aliases}
|
||||
{:block/name page-name})))
|
||||
aliases)
|
||||
(remove nil?))]
|
||||
(remove nil?))
|
||||
[*valid-properties *invalid-properties]
|
||||
((juxt filter remove)
|
||||
(fn [[k _v]] (gp-property/valid-property-name? (str k))) properties)
|
||||
valid-properties (into {} *valid-properties)
|
||||
invalid-properties (set (map (comp name first) *invalid-properties))]
|
||||
(cond->
|
||||
(gp-util/remove-nils
|
||||
(assoc
|
||||
(gp-block/page-name->map page false db true date-formatter)
|
||||
:block/file {:file/path (gp-util/path-normalize file)}))
|
||||
(seq properties)
|
||||
(assoc :block/properties properties)
|
||||
|
||||
(seq aliases)
|
||||
(assoc :block/alias aliases)
|
||||
(seq valid-properties)
|
||||
(assoc :block/properties valid-properties)
|
||||
|
||||
(seq invalid-properties)
|
||||
(assoc :block/invalid-properties invalid-properties)
|
||||
|
||||
(seq aliases')
|
||||
(assoc :block/alias aliases')
|
||||
|
||||
(:tags properties)
|
||||
(assoc :block/tags (let [tags (:tags properties)
|
||||
|
|
|
@ -210,15 +210,30 @@
|
|||
(let [conn (ldb/start-conn)
|
||||
properties {"foo" "valid"
|
||||
"[[foo]]" "invalid"
|
||||
"some,prop" "invalid"}]
|
||||
(graph-parser/parse-file conn "foo.md" (gp-property/->block-content properties) {})
|
||||
"some,prop" "invalid"}
|
||||
body (str (gp-property/->block-content properties)
|
||||
"\n- " (gp-property/->block-content properties))]
|
||||
(graph-parser/parse-file conn "foo.md" body {})
|
||||
|
||||
(is (= [{:block/properties {:foo "valid"}
|
||||
:block/invalid-properties #{"[[foo]]" "some,prop"}}]
|
||||
(->> (d/q '[:find (pull ?b [*])
|
||||
:in $
|
||||
:where [?b :block/properties] [(missing? $ ?b :block/name)]]
|
||||
:where
|
||||
[?b :block/properties]
|
||||
[(missing? $ ?b :block/pre-block?)]
|
||||
[(missing? $ ?b :block/name)]]
|
||||
@conn)
|
||||
(map first)
|
||||
(map #(select-keys % [:block/properties :block/invalid-properties]))))
|
||||
"Has correct (in)valid block properties")))
|
||||
"Has correct (in)valid block properties")
|
||||
|
||||
(is (= [{:block/properties {:foo "valid"}
|
||||
:block/invalid-properties #{"[[foo]]" "some,prop"}}]
|
||||
(->> (d/q '[:find (pull ?b [*])
|
||||
:in $
|
||||
:where [?b :block/properties] [?b :block/name]]
|
||||
@conn)
|
||||
(map first)
|
||||
(map #(select-keys % [:block/properties :block/invalid-properties]))))
|
||||
"Has correct (in)valid page properties")))
|
||||
|
|
Loading…
Reference in New Issue