Make # survice Url cleaning
authorbep <bjorn.erik.pedersen@gmail.com>
Tue, 10 Feb 2015 18:13:45 +0000 (19:13 +0100)
committerbep <bjorn.erik.pedersen@gmail.com>
Tue, 10 Feb 2015 18:14:19 +0000 (19:14 +0100)
To enable anchors in Urls.

Fixes #888

helpers/path.go
hugolib/menu_test.go

index 7965a6adaec8e6910e06ae4da4d5593dec569758..c83686062e31a86e8d84512303bb1c06fa2e24ab 100644 (file)
@@ -92,7 +92,7 @@ func UnicodeSanitize(s string) string {
        target := make([]rune, 0, len(source))
 
        for _, r := range source {
-               if unicode.IsLetter(r) || unicode.IsDigit(r) || r == '.' || r == '/' || r == '_' || r == '-' {
+               if unicode.IsLetter(r) || unicode.IsDigit(r) || r == '.' || r == '/' || r == '_' || r == '-' || r == '#' {
                        target = append(target, r)
                }
        }
index 6cab0a29aa0f2684f28fe18e6c48e1437b4eb0a8..75a988e7da8de5313e2b3a770796de5c690c3059 100644 (file)
@@ -50,6 +50,10 @@ const (
        name = "Tax RSS"
     url = "/two/key.xml"
        identifier="xml"
+[[menu.hash]]
+   name = "Tax With #"
+   url = "/resource#anchor"
+   identifier="hash"
 [[menu.unicode]]
    name = "Unicode Russian"
    identifier = "unicode-russian"
@@ -262,6 +266,18 @@ func TestPageMenu(t *testing.T) {
 
 }
 
+// issue #888
+func TestMenuWithHashInUrl(t *testing.T) {
+       ts := setupMenuTests(t, MENU_PAGE_SOURCES)
+       defer resetMenuTestState(ts)
+
+       me := ts.findTestMenuEntryById("hash", "hash")
+
+       assert.NotNil(t, me)
+
+       assert.Equal(t, "/Zoo/resource/#anchor", me.Url)
+}
+
 // issue #719
 func TestMenuWithUnicodeUrls(t *testing.T) {
        for _, uglyUrls := range []bool{true, false} {