From: Dato Simó Date: Sun, 11 May 2014 00:27:49 +0000 (+0100) Subject: Fix permalink functionality, which was broken in 62dd1d4. X-Git-Tag: v0.11~32 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=025a37df2f829a1799a2995ef8e49d591e96bee3;p=brevno-suite%2Fhugo Fix permalink functionality, which was broken in 62dd1d4. Viper stores Permalinks as a map[string]interface{}, so the type assertion to PermalinkOverrides (map[string]PathPattern) will always fail. We can, however, get Permalinks as a map[string]string, and convert each value to a PathPattern. --- diff --git a/hugolib/site.go b/hugolib/site.go index 1a4f785d..38136994 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -265,9 +265,9 @@ func (s *Site) initializeSiteInfo() { params = make(map[string]interface{}) } - permalinks, ok := viper.Get("Permalinks").(PermalinkOverrides) - if !ok { - permalinks = make(PermalinkOverrides) + permalinks := make(PermalinkOverrides) + for k, v := range viper.GetStringMapString("Permalinks") { + permalinks[k] = PathPattern(v) } s.Info = SiteInfo{ diff --git a/hugolib/siteinfo_test.go b/hugolib/siteinfo_test.go index 7d765e58..562cfa0d 100644 --- a/hugolib/siteinfo_test.go +++ b/hugolib/siteinfo_test.go @@ -30,3 +30,15 @@ func TestSiteInfoParams(t *testing.T) { t.Errorf("Expected FOOBAR_PARAM: got %s", buf.String()) } } + +func TestSiteInfoPermalinks (t *testing.T) { + viper.Set("Permalinks", map[string]interface{}{"section": "/:title"}) + s := &Site{} + + s.initialize() + permalink := s.Info.Permalinks["section"] + + if permalink != "/:title" { + t.Errorf("Could not set permalink (%#v)", permalink) + } +}