fix: change normalization from NFKC to NFC

This commit is contained in:
Junyi Du
2022-01-09 03:53:58 +08:00
committed by Tienson Qin
parent bc32e8f552
commit 5f658b0f2d
5 changed files with 21 additions and 20 deletions

View File

@@ -426,9 +426,11 @@
:else
(let [original-name (util/get-page-original-name page-entity)
s (if (not= (util/page-name-sanity-lc original-name) page-name-in-block)
s (if (not= (util/safe-page-name-sanity-lc original-name) page-name-in-block)
page-name-in-block ;; page-name-in-block might be overrided (legacy)
original-name)]
original-name)
_ (when-not page-entity (js/console.error "page-inner's page-entity is nil, given page-name: " page-name
" page-name-in-block: " page-name-in-block))]
(if tag? (str "#" s) s))))]))
(rum/defc page-preview-trigger
@@ -596,7 +598,7 @@
(rum/defc page-embed < rum/reactive db-mixins/query
[config page-name]
(let [page-name (string/trim (util/page-name-sanity-lc page-name))
(let [page-name (util/page-name-sanity-lc (string/trim page-name))
current-page (state/get-current-page)]
[:div.color-level.embed.embed-page.bg-base-2
{:class (when (:sidebar? config) "in-sidebar")
@@ -606,9 +608,9 @@
[:div.mr-3 svg/page]
(page-cp config {:block/name page-name})]
(when (and
(not= (string/lower-case (or current-page ""))
(not= (util/page-name-sanity-lc (or current-page ""))
page-name)
(not= (string/lower-case (get config :id ""))
(not= (util/page-name-sanity-lc (get config :id ""))
page-name))
(let [blocks (db/get-page-blocks (state/get-current-repo) page-name)]
(blocks-container blocks (assoc config

View File

@@ -59,7 +59,7 @@
(try
(let [now (tc/to-long (t/now))
page (get-page-name file ast)
[page page-name journal-day] (block/convert-page-if-journal page)
[original-page-name page-name journal-day] (block/convert-page-if-journal page)
blocks (->> (block/extract-blocks ast content false format)
(block/with-parent-and-left {:block/name page-name}))
ref-pages (atom #{})
@@ -78,12 +78,11 @@
:block/refs block-ref-pages
:block/path-refs block-path-ref-pages))))
blocks)
page-entity (let [page-file? (= page (string/lower-case file))
alias (:alias properties)
page-entity (let [alias (:alias properties)
alias (if (string? alias) [alias] alias)
aliases (and alias (seq (remove #(= page %) alias)))
page-list (when-let [list-content (:list properties)]
(extract-page-list list-content))]
aliases (and alias
(seq (remove #(= page-name (util/page-name-sanity-lc %))
alias)))]
(cond->
(util/remove-nils
(assoc
@@ -96,8 +95,7 @@
(assoc :block/alias
(map
(fn [alias]
(let [alias (util/page-name-sanity alias)
page-name (string/lower-case alias)
(let [page-name (util/page-name-sanity-lc alias)
aliases (distinct
(conj
(remove #{alias} aliases)

View File

@@ -368,7 +368,7 @@
journal? (:block/journal? page)
properties-block (:data (outliner-tree/-get-down (outliner-core/block page)))
properties-block-tx (when (and properties-block
(string/includes? (string/lower-case (:block/content properties-block))
(string/includes? (util/page-name-sanity-lc (:block/content properties-block))
old-page-name))
(let [front-matter? (and (property/front-matter? (:block/content properties-block))
(= :markdown (:block/format properties-block)))]
@@ -447,7 +447,7 @@
(println "Renamed " old-page-title " to " new-page-title))))))))
(defn- rename-namespace-pages!
"Accepts unsanitized names"
"Original names (unsanitized only)"
[repo old-name new-name]
(let [pages (db/get-namespace-pages repo old-name)
page (db/pull [:block/name (util/page-name-sanity-lc old-name)])

View File

@@ -76,14 +76,14 @@
(defn fuzzy-search
[data query & {:keys [limit extract-fn]
:or {limit 20}}]
(let [query (util/query-normalize query)]
(let [query (util/search-normalize query)]
(->> (take limit
(sort-by :score (comp - compare)
(filter #(< 0 (:score %))
(for [item data]
(let [s (str (if extract-fn (extract-fn item) item))]
{:data item
:score (score query (.toLowerCase s))})))))
:score (score query (util/search-normalize s))})))))
(map :data))))
(defn block-search

View File

@@ -1140,11 +1140,12 @@
(defn normalize
[s]
(.normalize s "NFKC"))
(.normalize s "NFC"))
(defn query-normalize
(defn search-normalize
"Normalize string for searching"
[s]
(normalize (string/lower-case s))
(.normalize (string/lower-case s) "NFKD")
)
(defn page-name-sanity