fix(props): show hierarchy for page alias

Close #7365
pull/7368/head
Andelf 2022-11-17 11:00:59 +08:00
parent dd7460f198
commit 20c527a3d9
2 changed files with 30 additions and 27 deletions

View File

@ -71,12 +71,12 @@
(remove-level-space-aux! text block-pattern space? trim-left?)))))
(defn namespace-page?
[p]
(and (string? p)
(string/includes? p "/")
(not (string/starts-with? p "../"))
(not (string/starts-with? p "./"))
(not (gp-util/url? p))))
[page-name]
(and (string? page-name)
(string/includes? page-name "/")
(not (string/starts-with? page-name "../"))
(not (string/starts-with? page-name "./"))
(not (gp-util/url? page-name))))
(defn parse-non-string-property-value
"Return parsed non-string property value or nil if none is found"

View File

@ -10,31 +10,34 @@
[rum.core :as rum]
[frontend.util :as util]))
(defn get-relation
(defn- get-relation
"Get all parent pages along the namespace hierarchy path.
If there're aliases, only use the first namespaced alias."
[page]
(when-let [page (or (text/get-nested-page-name page) page)]
(when (or (text/namespace-page? page)
(:block/_namespace (db/entity [:block/name (util/page-name-sanity-lc page)])))
(let [repo (state/get-current-repo)
namespace-pages (db/get-namespace-pages repo page)
parent-routes (db-model/get-page-namespace-routes repo page)
pages (->> (concat namespace-pages parent-routes)
(distinct)
(sort-by :block/name)
(map (fn [page]
(or (:block/original-name page) (:block/name page))))
(map #(string/split % "/")))
page-namespace (db-model/get-page-namespace repo page)
page-namespace (util/get-page-original-name page-namespace)]
(cond
(seq pages)
pages
(let [repo (state/get-current-repo)
aliases (db/get-page-alias-names repo page)
all-page-names (conj aliases page)]
(when-let [page (first (filter text/namespace-page? all-page-names))]
(let [namespace-pages (db/get-namespace-pages repo page)
parent-routes (db-model/get-page-namespace-routes repo page)
pages (->> (concat namespace-pages parent-routes)
(distinct)
(sort-by :block/name)
(map (fn [page]
(or (:block/original-name page) (:block/name page))))
(map #(string/split % "/")))
page-namespace (db-model/get-page-namespace repo page)
page-namespace (util/get-page-original-name page-namespace)]
(cond
(seq pages)
pages
page-namespace
[(string/split page-namespace "/")]
page-namespace
[(string/split page-namespace "/")]
:else
nil)))))
:else
nil))))))
(rum/defc structures
[page]