From 26c4f2c4869b56d861ea161bf51541616b9c39bc Mon Sep 17 00:00:00 2001 From: Junyi Du Date: Sun, 16 Jan 2022 04:50:47 +0800 Subject: [PATCH] fix: sanitize block search content --- src/main/frontend/components/editor.cljs | 4 +++- src/main/frontend/components/search.cljs | 4 +++- src/main/frontend/search/db.cljs | 15 ++++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/frontend/components/editor.cljs b/src/main/frontend/components/editor.cljs index 2b1befe95..4ed55c132 100644 --- a/src/main/frontend/components/editor.cljs +++ b/src/main/frontend/components/editor.cljs @@ -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"})))) diff --git a/src/main/frontend/components/search.cljs b/src/main/frontend/components/search.cljs index 65d1aee05..9b3842e51 100644 --- a/src/main/frontend/components/search.cljs +++ b/src/main/frontend/components/search.cljs @@ -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))]) diff --git a/src/main/frontend/search/db.cljs b/src/main/frontend/search/db.cljs index 612f704d8..491006f0f 100644 --- a/src/main/frontend/search/db.cljs +++ b/src/main/frontend/search/db.cljs @@ -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)