|
|
@@ -199,22 +199,19 @@
|
|
|
(remove string/blank?)
|
|
|
distinct)))
|
|
|
|
|
|
-(defn- invalid-property-key?
|
|
|
- [s]
|
|
|
- (string/includes? s "`"))
|
|
|
-
|
|
|
(defn extract-properties
|
|
|
[format properties user-config]
|
|
|
(when (seq properties)
|
|
|
(let [properties (seq properties)
|
|
|
page-refs (get-page-ref-names-from-properties format properties user-config)
|
|
|
+ *invalid-properties (atom #{})
|
|
|
properties (->> properties
|
|
|
(map (fn [[k v]]
|
|
|
(let [k (-> (string/lower-case (name k))
|
|
|
(string/replace " " "-")
|
|
|
(string/replace "_" "-")
|
|
|
(string/replace #"[\"|^|(|)|{|}]+" ""))]
|
|
|
- (when-not (invalid-property-key? k)
|
|
|
+ (if (gp-util/valid-edn-keyword? (str ":" k))
|
|
|
(let [k (if (contains? #{"custom_id" "custom-id"} k)
|
|
|
"id"
|
|
|
k)
|
|
|
@@ -235,10 +232,13 @@
|
|
|
(set [v])
|
|
|
v)
|
|
|
v (if (coll? v) (set v) v)]
|
|
|
- [k v])))))
|
|
|
- (remove #(nil? (second %))))]
|
|
|
- {:properties (into {} properties)
|
|
|
- :properties-order (map first properties)
|
|
|
+ [k v])
|
|
|
+ (swap! *invalid-properties conj k)))))
|
|
|
+ (remove #(nil? (second %))))
|
|
|
+ properties' (into {} properties)]
|
|
|
+ {:properties properties'
|
|
|
+ :properties-order (map first properties')
|
|
|
+ :invalid-properties @*invalid-properties
|
|
|
:page-refs page-refs})))
|
|
|
|
|
|
(defn- paragraph-timestamp-block?
|
|
|
@@ -533,7 +533,7 @@
|
|
|
(cons
|
|
|
(merge
|
|
|
(let [content (utf8/substring encoded-content 0 first-block-start-pos)
|
|
|
- {:keys [properties properties-order]} pre-block-properties
|
|
|
+ {:keys [properties properties-order invalid-properties]} pre-block-properties
|
|
|
id (get-custom-id-or-new-id {:properties properties})
|
|
|
property-refs (->> (get-page-refs-from-properties format properties db date-formatter user-config)
|
|
|
(map :block/original-name))
|
|
|
@@ -542,6 +542,7 @@
|
|
|
:level 1
|
|
|
:properties properties
|
|
|
:properties-order (vec properties-order)
|
|
|
+ :invalid-properties invalid-properties
|
|
|
:refs property-refs
|
|
|
:pre-block? true
|
|
|
:unordered true
|
|
|
@@ -578,7 +579,10 @@
|
|
|
(assoc :properties (:properties properties))
|
|
|
|
|
|
(seq (:properties-order properties))
|
|
|
- (assoc :properties-order (vec (:properties-order properties))))
|
|
|
+ (assoc :properties-order (vec (:properties-order properties)))
|
|
|
+
|
|
|
+ (seq (:invalid-properties properties))
|
|
|
+ (assoc :invalid-properties (:invalid-properties properties)))
|
|
|
block (if (get-in block [:properties :collapsed])
|
|
|
(-> (assoc block :collapsed? true)
|
|
|
(update :properties (fn [m] (dissoc m :collapsed)))
|