mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-30 22:39:58 +02:00
Add support for multiple staticDirs
This commit adds support for multiple statDirs both on the global and language level. A simple `config.toml` example: ```bash staticDir = ["static1", "static2"] [languages] [languages.no] staticDir = ["staticDir_override", "static_no"] baseURL = "https://example.no" languageName = "Norsk" weight = 1 title = "På norsk" [languages.en] staticDir2 = "static_en" baseURL = "https://example.com" languageName = "English" weight = 2 title = "In English" ``` In the above, with no theme used: the English site will get its static files as a union of "static1", "static2" and "static_en". On file duplicates, the right-most version will win. the Norwegian site will get its static files as a union of "staticDir_override" and "static_no". This commit also concludes the Multihost support in #4027. Fixes #36 Closes #4027
This commit is contained in:
@@ -18,6 +18,7 @@ import (
|
||||
|
||||
"github.com/gohugoio/hugo/deps"
|
||||
"github.com/gohugoio/hugo/tpl/internal"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
@@ -26,7 +27,7 @@ func TestInit(t *testing.T) {
|
||||
var ns *internal.TemplateFuncsNamespace
|
||||
|
||||
for _, nsf := range internal.TemplateFuncsNamespaceRegistry {
|
||||
ns = nsf(&deps.Deps{})
|
||||
ns = nsf(&deps.Deps{Cfg: viper.New()})
|
||||
if ns.Name == name {
|
||||
found = true
|
||||
break
|
||||
|
@@ -26,13 +26,15 @@ import (
|
||||
// New returns a new instance of the urls-namespaced template functions.
|
||||
func New(deps *deps.Deps) *Namespace {
|
||||
return &Namespace{
|
||||
deps: deps,
|
||||
deps: deps,
|
||||
multihost: deps.Cfg.GetBool("multihost"),
|
||||
}
|
||||
}
|
||||
|
||||
// Namespace provides template functions for the "urls" namespace.
|
||||
type Namespace struct {
|
||||
deps *deps.Deps
|
||||
deps *deps.Deps
|
||||
multihost bool
|
||||
}
|
||||
|
||||
// AbsURL takes a given string and converts it to an absolute URL.
|
||||
@@ -109,7 +111,7 @@ func (ns *Namespace) RelLangURL(a interface{}) (template.HTML, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return template.HTML(ns.deps.PathSpec.RelURL(s, true)), nil
|
||||
return template.HTML(ns.deps.PathSpec.RelURL(s, !ns.multihost)), nil
|
||||
}
|
||||
|
||||
// AbsLangURL takes a given string and converts it to an absolute URL according
|
||||
@@ -121,5 +123,5 @@ func (ns *Namespace) AbsLangURL(a interface{}) (template.HTML, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return template.HTML(ns.deps.PathSpec.AbsURL(s, true)), nil
|
||||
return template.HTML(ns.deps.PathSpec.AbsURL(s, !ns.multihost)), nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user