diff --git a/src/main/frontend/handler/page.cljs b/src/main/frontend/handler/page.cljs index 5575dde21..8d12f9aff 100644 --- a/src/main/frontend/handler/page.cljs +++ b/src/main/frontend/handler/page.cljs @@ -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))))))) diff --git a/src/main/frontend/util.cljc b/src/main/frontend/util.cljc index 074c6324d..08347f5b4 100644 --- a/src/main/frontend/util.cljc +++ b/src/main/frontend/util.cljc @@ -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]