mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-21 21:35:28 +02:00
Add configurable ref/relref error handling and notFoundURL
Two new settings: * refLinksErrorLevel: ERROR (default) or WARNING. ERROR will fail the build. * refLinksNotFoundURL: Used as a placeholder when page references cannot be found. Fixes #4964
This commit is contained in:
@@ -2063,7 +2063,8 @@ func (p *Page) decodeRefArgs(args map[string]interface{}) (refArgs, *SiteInfo, e
|
||||
}
|
||||
|
||||
if !found {
|
||||
return ra, nil, fmt.Errorf("no site found with lang %q", ra.Lang)
|
||||
p.s.siteRefLinker.logNotFound(ra.Path, fmt.Sprintf("no site found with lang %q", ra.Lang), p)
|
||||
return ra, nil, nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2076,6 +2077,10 @@ func (p *Page) Ref(argsm map[string]interface{}) (string, error) {
|
||||
return "", fmt.Errorf("invalid arguments to Ref: %s", err)
|
||||
}
|
||||
|
||||
if s == nil {
|
||||
return p.s.siteRefLinker.notFoundURL, nil
|
||||
}
|
||||
|
||||
if args.Path == "" {
|
||||
return "", nil
|
||||
}
|
||||
@@ -2092,6 +2097,10 @@ func (p *Page) RelRef(argsm map[string]interface{}) (string, error) {
|
||||
return "", fmt.Errorf("invalid arguments to Ref: %s", err)
|
||||
}
|
||||
|
||||
if s == nil {
|
||||
return p.s.siteRefLinker.notFoundURL, nil
|
||||
}
|
||||
|
||||
if args.Path == "" {
|
||||
return "", nil
|
||||
}
|
||||
@@ -2178,7 +2187,7 @@ func (p *Page) shouldAddLanguagePrefix() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
if !p.Site.defaultContentLanguageInSubdir && p.Lang() == p.Site.multilingual.DefaultLang.Lang {
|
||||
if !p.Site.defaultContentLanguageInSubdir && p.Lang() == p.s.multilingual().DefaultLang.Lang {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -2191,7 +2200,7 @@ func (p *Page) initLanguage() {
|
||||
return
|
||||
}
|
||||
|
||||
ml := p.Site.multilingual
|
||||
ml := p.s.multilingual()
|
||||
if ml == nil {
|
||||
panic("Multilanguage not set")
|
||||
}
|
||||
|
Reference in New Issue
Block a user