fix: update reference by ignoring case

pull/3117/head
leizhe 2021-11-11 22:10:54 +08:00 committed by Tienson Qin
parent dc42730c9a
commit 5313b364ca
2 changed files with 15 additions and 12 deletions

View File

@ -233,9 +233,9 @@
new-tag (if (re-find #"[\s\t]+" new-name)
(util/format "#[[%s]]" new-name)
(str "#" new-name))]
(-> (string/replace content (re-pattern (str "^" old-tag "\\b")) new-tag)
(string/replace (re-pattern (str " " old-tag " ")) (str " " new-tag " "))
(string/replace (re-pattern (str " " old-tag "$")) (str " " new-tag)))))
(-> (util/replace-ignore-case content (str "^" old-tag "\\b") new-tag)
(util/replace-ignore-case (str " " old-tag " ") (str " " new-tag " "))
(util/replace-ignore-case (str " " old-tag "$") (str " " new-tag)))))
(defn- replace-old-page!
[content old-name new-name]
@ -264,10 +264,6 @@
f))
form))
(defn- build-new-namespace-page-title
[old-page-title old-name new-name]
(string/replace-first old-page-title old-name new-name))
(defn favorited?
[page-name]
(let [favorites (->> (:favorites (state/get-config))
@ -412,9 +408,10 @@
(string/lower-case old-ns-name))]
(doseq [page nested-pages]
(let [[_page-id old-page-name] page
new-page-name (string/replace old-page-name
(re-pattern (util/format "(?i)\\[\\[%s\\]\\]" old-ns-name))
(util/format "[[%s]]" new-ns-name))]
new-page-name (util/replace-ignore-case
old-page-name
(util/format "\\[\\[%s\\]\\]" old-ns-name)
(util/format "[[%s]]" new-ns-name))]
(rename-page-aux old-page-name new-page-name)))))
(defn- rename-namespace-pages!
@ -422,7 +419,7 @@
(let [pages (db/get-namespace-pages repo old-name)]
(doseq [{:block/keys [name original-name] :as page} pages]
(let [old-page-title (or original-name name)
new-page-title (build-new-namespace-page-title old-page-title old-name new-name)]
new-page-title (util/replace-first-ignore-case old-page-title old-name new-name)]
(when (and old-page-title new-page-title)
(p/let [_ (rename-page-aux old-page-title new-page-title)]
(println "Renamed " old-page-title " to " new-page-title)))))))

View File

@ -4,13 +4,13 @@
#?(:cljs (:require
["/frontend/selection" :as selection]
["/frontend/utils" :as utils]
[frontend.mobile.util :refer [is-native-platform?]]
[camel-snake-kebab.core :as csk]
[camel-snake-kebab.extras :as cske]
[cljs-bean.core :as bean]
[cljs-time.coerce :as tc]
[cljs-time.core :as t]
[dommy.core :as d]
[frontend.mobile.util :refer [is-native-platform?]]
[frontend.react-impls :as react-impls]
[goog.dom :as gdom]
[goog.object :as gobj]
@ -621,6 +621,12 @@
(str prefix new-value)))
s)))
(defn replace-ignore-case [s old-value new-value]
(string/replace s (re-pattern (str "(?i)" old-value)) new-value))
(defn replace-first-ignore-case [s old-value new-value]
(string/replace-first s (re-pattern (str "(?i)" old-value)) new-value))
;; copy from https://stackoverflow.com/questions/18735665/how-can-i-get-the-positions-of-regex-matches-in-clojurescript
#?(:cljs
(defn re-pos [re s]