Просмотр исходного кода

feat: page content fts breadcrumb support

Junyi 3 лет назад
Родитель
Сommit
cf655b3bdd

+ 3 - 1
src/main/frontend/components/block.cljs

@@ -2497,12 +2497,14 @@
 (rum/defc breadcrumb-separator [] [:span.mx-2.opacity-50 "➤"])
 
 (defn breadcrumb
+  "block-id - uuid of the target block of breadcrumb. page uuid is also acceptable"
   [config repo block-id {:keys [show-page? indent? end-separator? level-limit _navigating-block]
                          :or {show-page? true
                               level-limit 3}
                          :as opts}]
   (let [parents (db/get-block-parents repo block-id (inc level-limit))
-        page (db/get-block-page repo block-id)
+        page (or (db/get-block-page repo block-id) ;; only return for block uuid
+                 (model/query-block-by-uuid block-id)) ;; return page entity when received page uuid
         page-name (:block/name page)
         page-original-name (:block/original-name page)
         show? (or (seq parents) show-page? page-name)

+ 2 - 3
src/main/frontend/components/search.cljs

@@ -67,10 +67,9 @@
   "Return hiccup of highlighted page content FTS result"
   [content q]
   (when-not (or (string/blank? content) (string/blank? q))
-    [:div (loop [content content
+    [:div (loop [content content ;; why recur? because there might be multiple matches
                  result  []]
-            (let [_ (prn "content" content "result" result)
-                  [b-cut hl-cut e-cut] (text-util/cut-by content "$pfts_2lqh>$" "$<pfts_2lqh$")
+            (let [[b-cut hl-cut e-cut] (text-util/cut-by content "$pfts_2lqh>$" "$<pfts_2lqh$")
                   hiccups-add [(when-not (string/blank? b-cut)
                                  [:span b-cut])
                                (when-not (string/blank? hl-cut)

+ 3 - 1
src/main/frontend/util/text.cljs

@@ -120,7 +120,9 @@
 
 (defn cut-by
   "Cut string by specifid wrapping symbols, only match the first occurrence.
-     value - string to cut"
+     value - string to cut
+     before - cutting symbol (before)
+     end - cutting symbol (end)"
   [value before end]
   (let [b-pos (string/index-of value before)
         b-len (count before)]