summaryrefslogtreecommitdiffhomepage
path: root/source
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2016-07-28 09:30:58 +0200
committerBjørn Erik Pedersen <[email protected]>2016-09-06 18:32:16 +0300
commit708bc78770a0b0361908f6404f57264c53252a95 (patch)
tree9b7e3a05b1e83a768bfa0dd96b61b07dd7917cfd /source
parentf023dfd7636f73b11c94e86a05c6273941d52c58 (diff)
downloadhugo-708bc78770a0b0361908f6404f57264c53252a95.tar.gz
hugo-708bc78770a0b0361908f6404f57264c53252a95.zip
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
Diffstat (limited to 'source')
-rw-r--r--source/file.go16
-rw-r--r--source/filesystem.go3
-rw-r--r--source/filesystem_test.go2
3 files changed, 13 insertions, 8 deletions
diff --git a/source/file.go b/source/file.go
index 9012b91c4..4bee882a6 100644
--- a/source/file.go
+++ b/source/file.go
@@ -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())
diff --git a/source/filesystem.go b/source/filesystem.go
index 7bdcd702f..82bcad6e6 100644
--- a/source/filesystem.go
+++ b/source/filesystem.go
@@ -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.")
+ }
}
}
diff --git a/source/filesystem_test.go b/source/filesystem_test.go
index d2101991b..a1e111d2f 100644
--- a/source/filesystem_test.go
+++ b/source/filesystem_test.go
@@ -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.")
}