mirror of
https://github.com/gohugoio/hugo.git
synced 2025-04-16 16:27:14 +00:00
commands: Make sure all language homes are always re-rendered in fast render mode
Fixes #4125
This commit is contained in:
parent
1c114d539b
commit
72903be587
3 changed files with 44 additions and 10 deletions
|
@ -940,9 +940,17 @@ func (c *commandeer) rebuildSites(events []fsnotify.Event) error {
|
||||||
visited := c.visitedURLs.PeekAllSet()
|
visited := c.visitedURLs.PeekAllSet()
|
||||||
doLiveReload := !buildWatch && !c.Cfg.GetBool("disableLiveReload")
|
doLiveReload := !buildWatch && !c.Cfg.GetBool("disableLiveReload")
|
||||||
if doLiveReload && !c.Cfg.GetBool("disableFastRender") {
|
if doLiveReload && !c.Cfg.GetBool("disableFastRender") {
|
||||||
home := c.pathSpec.PrependBasePath("/")
|
|
||||||
// Make sure we always render the home page
|
// Make sure we always render the home pages
|
||||||
visited[home] = true
|
for _, l := range c.languages {
|
||||||
|
langPath := c.PathSpec().GetLangSubDir(l.Lang)
|
||||||
|
if langPath != "" {
|
||||||
|
langPath = langPath + "/"
|
||||||
|
}
|
||||||
|
home := c.pathSpec.PrependBasePath("/" + langPath)
|
||||||
|
visited[home] = true
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return Hugo.Build(hugolib.BuildCfg{RecentlyVisited: visited}, events...)
|
return Hugo.Build(hugolib.BuildCfg{RecentlyVisited: visited}, events...)
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,8 +31,8 @@ type PathSpec struct {
|
||||||
uglyURLs bool
|
uglyURLs bool
|
||||||
canonifyURLs bool
|
canonifyURLs bool
|
||||||
|
|
||||||
language *Language
|
language *Language
|
||||||
//StatsCounter *siteSta
|
languages Languages
|
||||||
|
|
||||||
// pagination path handling
|
// pagination path handling
|
||||||
paginatePath string
|
paginatePath string
|
||||||
|
@ -85,9 +85,20 @@ func NewPathSpec(fs *hugofs.Fs, cfg config.Provider) (*PathSpec, error) {
|
||||||
staticDirs = append(staticDirs, getStringOrStringSlice(cfg, "staticDir", i)...)
|
staticDirs = append(staticDirs, getStringOrStringSlice(cfg, "staticDir", i)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
var lang string
|
var (
|
||||||
|
lang string
|
||||||
|
language *Language
|
||||||
|
languages Languages
|
||||||
|
)
|
||||||
|
|
||||||
if l, ok := cfg.(*Language); ok {
|
if l, ok := cfg.(*Language); ok {
|
||||||
|
language = l
|
||||||
lang = l.Lang
|
lang = l.Lang
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if l, ok := cfg.Get("languagesSorted").(Languages); ok {
|
||||||
|
languages = l
|
||||||
}
|
}
|
||||||
|
|
||||||
ps := &PathSpec{
|
ps := &PathSpec{
|
||||||
|
@ -98,6 +109,8 @@ func NewPathSpec(fs *hugofs.Fs, cfg config.Provider) (*PathSpec, error) {
|
||||||
uglyURLs: cfg.GetBool("uglyURLs"),
|
uglyURLs: cfg.GetBool("uglyURLs"),
|
||||||
canonifyURLs: cfg.GetBool("canonifyURLs"),
|
canonifyURLs: cfg.GetBool("canonifyURLs"),
|
||||||
multilingual: cfg.GetBool("multilingual"),
|
multilingual: cfg.GetBool("multilingual"),
|
||||||
|
language: language,
|
||||||
|
languages: languages,
|
||||||
defaultContentLanguageInSubdir: cfg.GetBool("defaultContentLanguageInSubdir"),
|
defaultContentLanguageInSubdir: cfg.GetBool("defaultContentLanguageInSubdir"),
|
||||||
defaultContentLanguage: cfg.GetString("defaultContentLanguage"),
|
defaultContentLanguage: cfg.GetString("defaultContentLanguage"),
|
||||||
paginatePath: cfg.GetString("paginatePath"),
|
paginatePath: cfg.GetString("paginatePath"),
|
||||||
|
@ -119,10 +132,6 @@ func NewPathSpec(fs *hugofs.Fs, cfg config.Provider) (*PathSpec, error) {
|
||||||
|
|
||||||
ps.PublishDir = publishDir
|
ps.PublishDir = publishDir
|
||||||
|
|
||||||
if language, ok := cfg.(*Language); ok {
|
|
||||||
ps.language = language
|
|
||||||
}
|
|
||||||
|
|
||||||
return ps, nil
|
return ps, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -215,6 +215,23 @@ func (p *PathSpec) getLanguagePrefix() string {
|
||||||
return currentLang
|
return currentLang
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetLangSubDir returns the given language's subdir if needed.
|
||||||
|
func (p *PathSpec) GetLangSubDir(lang string) string {
|
||||||
|
if !p.multilingual {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if p.languages.IsMultihost() {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if lang == "" || (lang == p.defaultContentLanguage && !p.defaultContentLanguageInSubdir) {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return lang
|
||||||
|
}
|
||||||
|
|
||||||
// IsAbsURL determines whether the given path points to an absolute URL.
|
// IsAbsURL determines whether the given path points to an absolute URL.
|
||||||
func IsAbsURL(path string) bool {
|
func IsAbsURL(path string) bool {
|
||||||
url, err := url.Parse(path)
|
url, err := url.Parse(path)
|
||||||
|
|
Loading…
Add table
Reference in a new issue