mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-21 21:35:28 +02:00
Optimize the multilanguage build process
Work In Progress! This commit makes a rework of the build and rebuild process to better suit a multi-site setup. This also includes a complete overhaul of the site tests. Previous these were a messy mix that were testing just small parts of the build chain, some of it testing code-paths not even used in "real life". Now all tests that depends on a built site follows the same and real production code path. See #2309 Closes #2211 Closes #477 Closes #1744
This commit is contained in:
@@ -108,10 +108,11 @@ func (f *File) Path() string {
|
||||
}
|
||||
|
||||
// NewFileWithContents creates a new File pointer with the given relative path and
|
||||
// content.
|
||||
// content. The language defaults to "en".
|
||||
func NewFileWithContents(relpath string, content io.Reader) *File {
|
||||
file := NewFile(relpath)
|
||||
file.Contents = content
|
||||
file.lang = "en"
|
||||
return file
|
||||
}
|
||||
|
||||
@@ -124,15 +125,16 @@ func NewFile(relpath string) *File {
|
||||
f.dir, f.logicalName = filepath.Split(f.relpath)
|
||||
f.ext = strings.TrimPrefix(filepath.Ext(f.LogicalName()), ".")
|
||||
f.baseName = helpers.Filename(f.LogicalName())
|
||||
if viper.GetBool("Multilingual") {
|
||||
f.lang = strings.TrimPrefix(filepath.Ext(f.baseName), ".")
|
||||
|
||||
f.lang = strings.TrimPrefix(filepath.Ext(f.baseName), ".")
|
||||
if f.lang == "" {
|
||||
f.lang = viper.GetString("DefaultContentLanguage")
|
||||
if f.lang == "" {
|
||||
f.lang = viper.GetString("DefaultContentLanguage")
|
||||
// TODO(bep) ml
|
||||
f.lang = "en"
|
||||
}
|
||||
f.translationBaseName = helpers.Filename(f.baseName)
|
||||
} else {
|
||||
f.translationBaseName = f.baseName
|
||||
}
|
||||
f.translationBaseName = helpers.Filename(f.baseName)
|
||||
|
||||
f.section = helpers.GuessSection(f.Dir())
|
||||
f.uniqueID = helpers.Md5String(f.LogicalName())
|
||||
|
@@ -105,6 +105,9 @@ func (f *Filesystem) captureFiles() {
|
||||
|
||||
if err != nil {
|
||||
jww.ERROR.Println(err)
|
||||
if err == helpers.WalkRootTooShortError {
|
||||
panic("The root path is too short. If this is a test, make sure to init the content paths.")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -22,7 +22,7 @@ import (
|
||||
)
|
||||
|
||||
func TestEmptySourceFilesystem(t *testing.T) {
|
||||
src := new(Filesystem)
|
||||
src := &Filesystem{Base: "Empty"}
|
||||
if len(src.Files()) != 0 {
|
||||
t.Errorf("new filesystem should contain 0 files.")
|
||||
}
|
||||
|
Reference in New Issue
Block a user