mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
628efd6e29
commit
cd07e6d57b
4 changed files with 48 additions and 6 deletions
|
@ -179,6 +179,10 @@ Site Title: {{ .Site.Title }}
|
||||||
Site Lang Mood: {{ .Site.Language.Params.MOoD }}
|
Site Lang Mood: {{ .Site.Language.Params.MOoD }}
|
||||||
Page Colors: {{ .Params.COLOR }}|{{ .Params.Colors.Blue }}
|
Page Colors: {{ .Params.COLOR }}|{{ .Params.Colors.Blue }}
|
||||||
Site Colors: {{ .Site.Params.COLOR }}|{{ .Site.Params.COLORS.YELLOW }}
|
Site Colors: {{ .Site.Params.COLOR }}|{{ .Site.Params.COLORS.YELLOW }}
|
||||||
|
{{ $page2 := .Site.GetPage "/sect2/page2" }}
|
||||||
|
{{ if $page2 }}
|
||||||
|
Page2: {{ $page2.Params.ColoR }}
|
||||||
|
{{ end }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ partial "partial.html" . }}
|
{{ partial "partial.html" . }}
|
||||||
`)
|
`)
|
||||||
|
@ -207,6 +211,7 @@ Site Colors: {{ .Site.Params.COLOR }}|{{ .Site.Params.COLORS.YELLOW }}
|
||||||
"Page Title: Side 1",
|
"Page Title: Side 1",
|
||||||
"Site Title: Nynorsk title",
|
"Site Title: Nynorsk title",
|
||||||
"«Hi»", // angled quotes
|
"«Hi»", // angled quotes
|
||||||
|
"Page2: black ",
|
||||||
)
|
)
|
||||||
|
|
||||||
th.assertFileContent(filepath.Join("public", "en", "sect1", "page1", "index.html"),
|
th.assertFileContent(filepath.Join("public", "en", "sect1", "page1", "index.html"),
|
||||||
|
|
|
@ -743,7 +743,7 @@ func (th testHelper) assertFileContent(filename string, matches ...string) {
|
||||||
content := readDestination(th, th.Fs, filename)
|
content := readDestination(th, th.Fs, filename)
|
||||||
for _, match := range matches {
|
for _, match := range matches {
|
||||||
match = th.replaceDefaultContentLanguageValue(match)
|
match = th.replaceDefaultContentLanguageValue(match)
|
||||||
th.Assert(strings.Contains(content, match), qt.Equals, true)
|
th.Assert(strings.Contains(content, match), qt.Equals, true, qt.Commentf(content))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -508,8 +508,7 @@ func (d decl) resolveVariables(idents []string) ([]string, bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !d.isKeyword(replacement) {
|
if !d.isKeyword(replacement) {
|
||||||
// This can not be .Site.Params etc.
|
continue
|
||||||
return nil, false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
replacement = strings.TrimPrefix(replacement, ".")
|
replacement = strings.TrimPrefix(replacement, ".")
|
||||||
|
|
|
@ -26,6 +26,19 @@ import (
|
||||||
qt "github.com/frankban/quicktest"
|
qt "github.com/frankban/quicktest"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type paramsHolder struct {
|
||||||
|
params map[string]interface{}
|
||||||
|
page *paramsHolder
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p paramsHolder) Params() map[string]interface{} {
|
||||||
|
return p.params
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p paramsHolder) GetPage(arg string) *paramsHolder {
|
||||||
|
return p.page
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
testFuncs = map[string]interface{}{
|
testFuncs = map[string]interface{}{
|
||||||
"getif": func(v interface{}) interface{} { return v },
|
"getif": func(v interface{}) interface{} { return v },
|
||||||
|
@ -37,16 +50,22 @@ var (
|
||||||
"ByWeight": fmt.Sprintf("%v:%v:%v", seq, key, args),
|
"ByWeight": fmt.Sprintf("%v:%v:%v", seq, key, args),
|
||||||
}, nil
|
}, nil
|
||||||
},
|
},
|
||||||
"site": func() interface{} {
|
"site": func() paramsHolder {
|
||||||
return map[string]interface{}{
|
return paramsHolder{
|
||||||
"Params": map[string]interface{}{
|
params: map[string]interface{}{
|
||||||
"lower": "global-site",
|
"lower": "global-site",
|
||||||
},
|
},
|
||||||
|
page: ¶msHolder{
|
||||||
|
params: map[string]interface{}{
|
||||||
|
"lower": "page",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
paramsData = map[string]interface{}{
|
paramsData = map[string]interface{}{
|
||||||
|
|
||||||
"NotParam": "Hi There",
|
"NotParam": "Hi There",
|
||||||
"Slice": []int{1, 3},
|
"Slice": []int{1, 3},
|
||||||
"Params": map[string]interface{}{
|
"Params": map[string]interface{}{
|
||||||
|
@ -81,6 +100,16 @@ var (
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"Site2": paramsHolder{
|
||||||
|
params: map[string]interface{}{
|
||||||
|
"lower": "global-site",
|
||||||
|
},
|
||||||
|
page: ¶msHolder{
|
||||||
|
params: map[string]interface{}{
|
||||||
|
"lower": "page",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
paramsTempl = `
|
paramsTempl = `
|
||||||
|
@ -170,6 +199,11 @@ PARAMS SITE GLOBAL1: {{ site.Params.LOwER }}
|
||||||
{{ $site := site }}
|
{{ $site := site }}
|
||||||
PARAMS SITE GLOBAL2: {{ $lower }}
|
PARAMS SITE GLOBAL2: {{ $lower }}
|
||||||
PARAMS SITE GLOBAL3: {{ $site.Params.LOWER }}
|
PARAMS SITE GLOBAL3: {{ $site.Params.LOWER }}
|
||||||
|
|
||||||
|
{{ $p := $site.GetPage "foo" }}
|
||||||
|
PARAMS GETPAGE: {{ $p.Params.LOWER }}
|
||||||
|
{{ $p := .Site2.GetPage "foo" }}
|
||||||
|
PARAMS GETPAGE2: {{ $p.Params.LOWER }}
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -248,6 +282,10 @@ func TestParamsKeysToLower(t *testing.T) {
|
||||||
c.Assert(result, qt.Contains, "PARAMS SITE GLOBAL2: global-site")
|
c.Assert(result, qt.Contains, "PARAMS SITE GLOBAL2: global-site")
|
||||||
c.Assert(result, qt.Contains, "PARAMS SITE GLOBAL3: global-site")
|
c.Assert(result, qt.Contains, "PARAMS SITE GLOBAL3: global-site")
|
||||||
|
|
||||||
|
//
|
||||||
|
c.Assert(result, qt.Contains, "PARAMS GETPAGE: page")
|
||||||
|
c.Assert(result, qt.Contains, "PARAMS GETPAGE2: page")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkTemplateParamsKeysToLower(b *testing.B) {
|
func BenchmarkTemplateParamsKeysToLower(b *testing.B) {
|
||||||
|
|
Loading…
Reference in a new issue