funcool / bide

A simple routing library for ClojureScript
BSD 2-Clause "Simplified" License
132 stars 20 forks source link

Support for anchor tag - currently pollutes results #10

Open ibothwell opened 7 years ago

ibothwell commented 7 years ago

Love the library. Very simple to use. Did run into issues with anchors. if they are on the path then they leak into the produced results.

(def routes [["/" :root] ["/:id" :root-with-id]]) (def my-router (r/router routes)) (r/match my-router "/") ; [:root nil nil] (r/match my-router "/?a=1") ; [:root nil {:a "1"}] (r/match my-router "/?a=1#asdf") ; [:root nil {:a "1#asdf"}] (r/match my-router "/#asdf") ; [:root-with-id {:id "#asdf"} nil] (r/match my-router "/my-id#asdf") ; [:root-with-id {:id "my-id#asdf"} nil] (r/match my-router "/my-id?a=1#asdf") ; [:root-with-id {:id "my-id"} {:a "1#asdf"}]

niwinz commented 7 years ago

A PR with a fix is welcome!

kennyjwilli commented 5 years ago

I am also interested in this. I assume we don't want to completely discard the anchor tag. @niwinz Where should the parsed anchor tag go in the result from match?

kennyjwilli commented 5 years ago

Also worth noting that the behavior I see is different than the behavior shown in this issue's description:

(r/match (r/router [["/page1" :page1]])
         "/page1")
=> [:page1 nil nil]
(r/match (r/router [["/page1" :page1]])
         "/page1#anchor")
=> nil