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.
This commit is contained in:
Dato Simó 2014-05-11 01:27:49 +01:00 committed by spf13
parent 05b76dcb6f
commit 025a37df2f
2 changed files with 15 additions and 3 deletions

View File

@ -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{

View File

@ -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)
}
}