Make per-page url overrides take precedence over section permalink settings

This seems more reasonable to me.

I didn't understand why the pUrl comparision was on len > 2; I changed it to 0.

Closes #212.
This commit is contained in:
Ask Bjørn Hansen
2014-02-27 23:30:12 -08:00
committed by spf13
parent 732b5d42b2
commit ea8d0981d5
2 changed files with 23 additions and 14 deletions

View File

@@ -235,17 +235,19 @@ func (p *Page) permalink() (*url.URL, error) {
var permalink string
var err error
if len(pUrl) > 0 {
return helpers.MakePermalink(baseUrl, pUrl), nil
}
if override, ok := p.Site.Permalinks[p.Section]; ok {
permalink, err = override.Expand(p)
if err != nil {
return nil, err
}
//fmt.Printf("have an override for %q in section %s → %s\n", p.Title, p.Section, permalink)
// fmt.Printf("have a section override for %q in section %s → %s\n", p.Title, p.Section, permalink)
} else {
if len(pSlug) > 0 {
permalink = helpers.UrlPrep(p.Site.Config.UglyUrls, path.Join(dir, p.Slug+"."+p.Extension))
} else if len(pUrl) > 2 {
permalink = pUrl
} else {
_, t := path.Split(p.FileName)
permalink = helpers.UrlPrep(p.Site.Config.UglyUrls, path.Join(dir, helpers.ReplaceExtension(strings.TrimSpace(t), p.Extension)))