Browse Source

fix: introduce more page-name sanity

Junyi Du 4 years ago
parent
commit
7505b0dde6

+ 4 - 4
src/main/frontend/components/block.cljs

@@ -451,7 +451,7 @@
                                                       [:span
                                                        [:span.text-sm.mr-2 "Alias:"]
                                                        page-original-name])])
-                           (let [page (db/entity [:block/name (string/lower-case redirect-page-name)])]
+                           (let [page (db/entity [:block/name (util/page-name-sanity-lc redirect-page-name)])]
                              (editor-handler/insert-first-page-block-if-not-exists! redirect-page-name)
                              (when-let [f (state/get-page-blocks-cp)]
                                (f (state/get-current-repo) page {:sidebar? sidebar? :preview? true})))]))]
@@ -620,7 +620,7 @@
 (defn- get-page
   [label]
   (when-let [label-text (get-label-text label)]
-    (db/entity [:block/name (string/lower-case label-text)])))
+    (db/entity [:block/name (util/page-name-sanity-lc label-text)])))
 
 (defn- macro->text
   [name arguments]
@@ -985,7 +985,7 @@
                     config (assoc config :redirect-page-name redirect-page-name)
                     label-text (get-label-text label)
                     page (if (string/blank? label-text)
-                           {:block/name (db/get-file-page (string/replace href "file:" ""))}
+                           {:block/name (util/page-name-sanity-lc (db/get-file-page (string/replace href "file:" "")))}
                            (get-page label))]
                 (if (and page
                          (when-let [ext (util/get-file-ext href)]
@@ -2004,7 +2004,7 @@
   [config block label]
   (if (= block :page)                   ; page
     (when label
-      (let [page (db/entity [:block/name (string/lower-case label)])]
+      (let [page (db/entity [:block/name (util/page-name-sanity-lc label)])]
         (page-cp config page)))
     [:a {:on-mouse-down
          (fn [e]

+ 1 - 1
src/main/frontend/components/file.cljs

@@ -85,7 +85,7 @@
                                   :href (rfe/href :page {:name page})
                                   :on-click (fn [e]
                                               (when (gobj/get e "shiftKey")
-                                                (when-let [page (db/entity [:block/name (string/lower-case page)])]
+                                                (when-let [page (db/entity [:block/name (util/page-name-sanity-lc page)])]
                                                   (state/sidebar-add-block!
                                                    (state/get-current-repo)
                                                    (:db/id page)

+ 2 - 2
src/main/frontend/components/journal.cljs

@@ -24,7 +24,7 @@
 (rum/defc blocks-cp < rum/reactive db-mixins/query
   {}
   [repo page format]
-  (when-let [page-e (db/pull [:block/name (string/lower-case page)])]
+  (when-let [page-e (db/pull [:block/name (util/page-name-sanity-lc page)])]
     (page/page-blocks-cp repo page-e {})))
 
 (rum/defc journal-cp < rum/reactive
@@ -38,7 +38,7 @@
                     (not (config/local-db? repo))
                     (not config/publishing?)
                     today?)
-        page-entity (db/pull [:block/name (string/lower-case title)])
+        page-entity (db/pull [:block/name (util/page-name-sanity-lc title)])
         data-page-tags (when (seq (:block/tags page-entity))
                          (let [page-names (model/get-page-names-by-ids (map :db/id (:block/tags page)))]
                            (text/build-data-value page-names)))]

+ 2 - 1
src/main/frontend/components/page.cljs

@@ -210,7 +210,8 @@
                   (if fmt-journal? (date/journal-title->custom-format title) title))
           old-name (or title page-name)
           confirm-fn (fn []
-                       (let [merge? (and (not= (string/lower-case page-name) (string/lower-case @*title-value))
+                       (let [merge? (and (not= (util/page-name-sanity-lc page-name) 
+                                               (util/page-name-sanity-lc @*title-value))
                                          (page-handler/page-exists? page-name)
                                          (page-handler/page-exists? @*title-value))]
                          (ui/make-confirm-modal

+ 1 - 1
src/main/frontend/components/query_table.cljs

@@ -168,6 +168,6 @@
                              (interpose [:span ", "] vals))
                            (if (not (string? value))
                              value
-                             (if-let [page (db/entity [:block/name (string/lower-case value)])]
+                             (if-let [page (db/entity [:block/name (util/page-name-sanity-lc value)])]
                                (page-cp {} page)
                                (inline-text format value)))))))]))]))]]])))

+ 1 - 1
src/main/frontend/components/right_sidebar.cljs

@@ -130,7 +130,7 @@
 
   (let [item
         (if (= :page block-type)
-          (let [lookup-ref (if (number? db-id) db-id [:block/name (string/lower-case db-id)])
+          (let [lookup-ref (if (number? db-id) db-id [:block/name (util/page-name-sanity-lc db-id)])
                 page (db/query-entity-in-component lookup-ref)]
             (when (seq page)
               (build-sidebar-item repo idx db-id block-type page t)))

+ 10 - 9
src/main/frontend/db/model.cljs

@@ -354,7 +354,7 @@
   ([repo names]
    (when repo
      (let [lookup-refs (map (fn [name]
-                              [:block/name (string/lower-case name)]) names)]
+                              [:block/name (util/page-name-sanity-lc name)]) names)]
        (->> (db-utils/pull-many repo '[:db/id] lookup-refs)
             (mapv :db/id))))))
 
@@ -364,9 +364,9 @@
     (when (seq alias-ids)
       (let [names (->> (get-page-names-by-ids repo alias-ids)
                        distinct
-                       (remove #(= (string/lower-case %) (string/lower-case page-name))))
+                       (remove #(= (util/page-name-sanity-lc %) (util/page-name-sanity-lc page-name))))
             lookup-refs (map (fn [name]
-                               [:block/name (string/lower-case name)]) names)]
+                               [:block/name (util/page-name-sanity-lc name)]) names)]
         (->> (db-utils/pull-many repo '[:block/name :block/original-name] lookup-refs)
              (map (fn [m]
                     (or (:block/original-name m) (:block/name m)))))))))
@@ -739,7 +739,7 @@
   [page-name]
   (if (util/uuid-string? page-name)
     (db-utils/entity [:block/uuid (uuid page-name)])
-    (db-utils/entity [:block/name (string/lower-case page-name)])))
+    (db-utils/entity [:block/name (util/page-name-sanity-lc page-name)])))
 
 (defn- heading-block?
   [block]
@@ -748,18 +748,18 @@
    (= "Heading" (first block))))
 
 (defn get-redirect-page-name
+  "Accepts both sanitized or unsanitized"
   ([page-name] (get-redirect-page-name page-name false))
   ([page-name alias?]
    (when page-name
-     (let [page-name (string/lower-case page-name)
+     (let [page-name (util/page-name-sanity-lc page-name)
            page-entity (db-utils/entity [:block/name page-name])]
        (cond
          alias?
          page-name
 
          (page-empty-or-dummy? (state/get-current-repo) (:db/id page-entity))
-         (let [source-page (get-alias-source-page (state/get-current-repo)
-                                                  (string/lower-case page-name))]
+         (let [source-page (get-alias-source-page (state/get-current-repo) page-name)]
            (or (when source-page (:block/name source-page))
                page-name))
 
@@ -1454,16 +1454,17 @@
     (namespace-children root)))
 
 (defn get-namespace-hierarchy
+  "Unsanitized namespaces"
   [repo namespace]
   (let [children (get-namespace-pages repo namespace)
-        namespace-id (:db/id (db-utils/entity [:block/name (string/lower-case namespace)]))
+        namespace-id (:db/id (db-utils/entity [:block/name (util/page-name-sanity-lc namespace)]))
         root {:db/id namespace-id}
         col (conj children root)]
     (tree col root)))
 
 (defn get-page-namespace
   [repo page]
-  (:block/namespace (db-utils/entity repo [:block/name (string/lower-case page)])))
+  (:block/namespace (db-utils/entity repo [:block/name (util/page-name-sanity-lc page)])))
 
 (defn get-page-namespace-routes
   [repo page]

+ 3 - 3
src/main/frontend/db/query_dsl.cljs

@@ -160,7 +160,7 @@
 
        page-ref?
        (let [page-name (-> (text/page-ref-un-brackets! e)
-                           (string/lower-case))]
+                           (util/page-name-sanity-lc))]
          [['?b :block/path-refs [:block/name page-name]]])
 
        (string? e)                      ; block content full-text search, could be slow
@@ -330,8 +330,8 @@
            nil))
 
        (= 'page fe)
-       (let [page-name (string/lower-case (str (first (rest e))))
-             page-name (text/page-ref-un-brackets! page-name)]
+       (let [page-name (text/page-ref-un-brackets! (str (first (rest e))))
+             page-name (util/page-name-sanity-lc page-name)]
          [['?b :block/page [:block/name page-name]]])
 
        (and (= 'namespace fe)

+ 1 - 1
src/main/frontend/db/react.cljs

@@ -195,7 +195,7 @@
 
                (date/journal-name))]
     (when page
-      (let [page-name (string/lower-case page)]
+      (let [page-name (util/page-name-sanity-lc page)]
         (db-utils/entity [:block/name page-name])))))
 
 (defn get-current-priority

+ 8 - 9
src/main/frontend/format/block.cljs

@@ -255,13 +255,12 @@
   "Convert journal file name to user' custom date format"
   [original-page-name]
   (when original-page-name
-    (let [page-name (-> (string/lower-case original-page-name)
-                        (util/page-name-sanity))
+    (let [page-name (util/page-name-sanity-lc original-page-name)
           day (date/journal-title->int page-name)]
-      (if day
-        (let [original-page-name (date/int->journal-title day)]
-          [original-page-name (string/lower-case original-page-name) day])
-        [original-page-name page-name day]))))
+     (if day
+       (let [original-page-name (date/int->journal-title day)]
+         [original-page-name (util/page-name-sanity-lc original-page-name) day])
+       [original-page-name page-name day]))))
 
 (defn page-name->map
   [original-page-name with-id?]
@@ -281,7 +280,7 @@
              (when namespace?
                (let [namespace (first (util/split-last "/" original-page-name))]
                  (when-not (string/blank? namespace)
-                   {:block/namespace {:block/name (string/lower-case namespace)}}))))]
+                   {:block/namespace {:block/name (util/page-name-sanity-lc namespace)}}))))]
       (if journal-day
         (merge m
                {:block/journal? true
@@ -407,7 +406,7 @@
                                 (remove string/blank?)
                                 (map (fn [ref]
                                        (if (string? ref)
-                                         {:block/name (string/lower-case ref)}
+                                         {:block/name (util/page-name-sanity-lc ref)}
                                          ref)))
                                 (remove vector?)
                                 (remove nil?)
@@ -421,7 +420,7 @@
   (if (seq tags)
     (assoc block :tags (map (fn [tag]
                               (let [tag (text/page-ref-un-brackets! tag)]
-                                [:block/name (string/lower-case tag)])) tags))
+                                [:block/name (util/page-name-sanity-lc tag)])) tags))
     block))
 
 (defn src-block?

+ 2 - 2
src/main/frontend/handler/editor.cljs

@@ -683,7 +683,7 @@
     (let [before? (if page false before?)
           sibling? (if before? true (if page false sibling?))
           block (if page
-                  (db/entity [:block/name (string/lower-case page)])
+                  (db/entity [:block/name (util/page-name-sanity-lc page)])
                   (db/entity [:block/uuid block-uuid]))]
       (when block
         (let [last-block (when (not sibling?)
@@ -2369,7 +2369,7 @@
   (when id
     (when-let [entity (if (util/uuid-string? (str id))
                         (db/entity [:block/uuid (uuid id)])
-                        (db/entity [:block/name (string/lower-case id)]))]
+                        (db/entity [:block/name (util/page-name-sanity-lc id)]))]
       (= (:block/uuid entity) (tree/-get-parent-id current-node)))))
 
 (defn- insert

+ 1 - 1
src/main/frontend/handler/export.cljs

@@ -286,7 +286,7 @@
      :block-refs block-refs}))
 
 (defn get-page-page&block-refs [repo page-name embed-pages embed-blocks block-refs]
-  (let [page-name* (string/lower-case page-name)
+  (let [page-name* (util/page-name-sanity-lc page-name)
         page-content (get-page-content repo page-name*)
         format (:block/format (db/entity [:block/name page-name*]))
         ast (mldoc/->edn page-content (mldoc/default-config format))

+ 2 - 2
src/main/frontend/handler/external.cljs

@@ -50,7 +50,7 @@
                              (map
                               (fn [title]
                                 (let [day (date/journal-title->int title)
-                                      page-name (string/lower-case (date/int->journal-title day))]
+                                      page-name (util/page-name-sanity-lc (date/int->journal-title day))]
                                   {:block/name page-name
                                    :block/journal? true
                                    :block/journal-day day}))
@@ -79,7 +79,7 @@
           page-name (:title headers)]
       (when (not (page/page-exists? page-name))
         (page/create! page-name {:redirect? false}))
-      (let [page-block (db/entity [:block/name (string/lower-case page-name)])
+      (let [page-block (db/entity [:block/name (util/page-name-sanity-lc page-name)])
             children (:block/_parent page-block)
             blocks (db/sort-by-left children page-block)
             last-block (last blocks)

+ 7 - 8
src/main/frontend/handler/page.cljs

@@ -95,10 +95,9 @@
                   split-namespace?    true}}]
    (let [title (string/trim title)
          title (util/remove-boundary-slashes title)
-         page (string/lower-case title)]
-     (when-not (db/entity [:block/name page])
-       (let [title    (string/trim title)
-             pages    (if split-namespace?
+         page-name (util/page-name-sanity-lc title)]
+     (when-not (db/entity [:block/name page-name])
+       (let [pages    (if split-namespace?
                         (util/split-namespace-pages title)
                         [title])
              format   (or format (state/get-preferred-format))
@@ -118,14 +117,14 @@
          (db/transact! txs)
 
          (when create-first-block?
-           (editor-handler/insert-first-page-block-if-not-exists! page))
+           (editor-handler/insert-first-page-block-if-not-exists! page-name))
 
-         (when-let [page (db/entity [:block/name page])]
+         (when-let [page (db/entity [:block/name page-name])]
            (outliner-file/sync-to-file page))
 
          (when redirect?
-           (route-handler/redirect-to-page! page))
-         page)))))
+           (route-handler/redirect-to-page! page-name))
+         page-name)))))
 
 (defn delete-file!
   [repo page-name]