fix: sanitize block search content

pull/3927/head^2
Junyi Du 2022-01-16 04:50:47 +08:00 committed by Tienson Qin
parent dbbf0c9dd0
commit 26c4f2c486
3 changed files with 16 additions and 7 deletions

View File

@ -18,6 +18,7 @@
[frontend.mixins :as mixins]
[frontend.modules.shortcut.core :as shortcut]
[frontend.state :as state]
[frontend.search.db :as search-db]
[frontend.ui :as ui]
[frontend.util :as util]
[frontend.util.cursor :as cursor]
@ -170,7 +171,8 @@
(:block/name page))
repo (state/sub :git/current-repo)
format (db/get-page-format page)
content (:block/content (db-model/query-block-by-uuid uuid))]
block (db-model/query-block-by-uuid uuid)
content (search-db/block->content block)]
[:.py-2 (search/block-search-result-item repo uuid format content q :block)]))
:class "black"}))))

View File

@ -11,6 +11,7 @@
[frontend.extensions.pdf.assets :as pdf-assets]
[frontend.ui :as ui]
[frontend.state :as state]
[frontend.search.db :as search-db]
[frontend.mixins :as mixins]
[frontend.config :as config]
[clojure.string :as string]
@ -202,7 +203,8 @@
page (util/get-page-original-name page)
repo (state/sub :git/current-repo)
format (db/get-page-format page)
content (:block/content (model/query-block-by-uuid uuid))]
block (model/query-block-by-uuid uuid)
content (search-db/block->content block)]
[:span {:data-block-ref uuid}
(search-result-item "Block"
(block-search-result-item repo uuid format content search-q search-mode))])

View File

@ -16,12 +16,17 @@
[repo]
(nil? (get @indices repo)))
(defn block->content
"Convert a block to the display contents for searching"
[{:block/keys [content format]}]
(->> (text/remove-level-spaces content format)
(drawer/remove-logbook)
(property/remove-built-in-properties format)))
(defn block->index
"Convert a block to the contents for searching (will be displayed in the search results)"
[{:block/keys [uuid content format page] :as block}]
(when-let [result (->> (text/remove-level-spaces content format)
(drawer/remove-logbook)
(property/remove-built-in-properties format)
"Convert a block to the index for searching"
[{:block/keys [uuid page] :as block}]
(when-let [result (->> (block->content block)
(util/search-normalize))]
{:id (:db/id block)
:uuid (str uuid)