mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
parent
22055176d2
commit
85d31f7bfb
3 changed files with 81 additions and 1 deletions
|
@ -635,7 +635,19 @@ func (p *pageState) RenderString(args ...interface{}) (template.HTML, error) {
|
|||
}
|
||||
}
|
||||
|
||||
c, err := p.pageOutput.cp.renderContentWithConverter(conv, []byte(s), false)
|
||||
var cp *pageContentOutput
|
||||
|
||||
// If the current content provider is not yet initialized, do so now.
|
||||
if lcp, ok := p.pageOutput.ContentProvider.(*page.LazyContentProvider); ok {
|
||||
c := lcp.Init()
|
||||
if pco, ok := c.(*pageContentOutput); ok {
|
||||
cp = pco
|
||||
}
|
||||
} else {
|
||||
cp = p.pageOutput.cp
|
||||
}
|
||||
|
||||
c, err := cp.renderContentWithConverter(conv, []byte(s), false)
|
||||
if err != nil {
|
||||
return "", p.wrapError(err)
|
||||
}
|
||||
|
|
|
@ -768,6 +768,69 @@ Here is the last report for commits in the year 2016. It covers hrev50718-hrev50
|
|||
`)
|
||||
}
|
||||
|
||||
// Issue 9383
|
||||
func TestRenderStringForRegularPageTranslations(t *testing.T) {
|
||||
c := qt.New(t)
|
||||
b := newTestSitesBuilder(t)
|
||||
b.WithLogger(loggers.NewBasicLoggerForWriter(jwalterweatherman.LevelDebug, os.Stderr))
|
||||
|
||||
b.WithConfigFile("toml",
|
||||
`baseurl = "https://example.org/"
|
||||
title = "My Site"
|
||||
|
||||
defaultContentLanguage = "ru"
|
||||
defaultContentLanguageInSubdir = true
|
||||
|
||||
[languages.ru]
|
||||
contentDir = 'content/ru'
|
||||
weight = 1
|
||||
|
||||
[languages.en]
|
||||
weight = 2
|
||||
contentDir = 'content/en'
|
||||
|
||||
[outputs]
|
||||
home = ["HTML", "JSON"]`)
|
||||
|
||||
b.WithTemplates("index.html", `
|
||||
{{- range .Site.Home.Translations -}}
|
||||
<p>{{- .RenderString "foo" -}}</p>
|
||||
{{- end -}}
|
||||
{{- range .Site.Home.AllTranslations -}}
|
||||
<p>{{- .RenderString "bar" -}}</p>
|
||||
{{- end -}}
|
||||
`, "_default/single.html",
|
||||
`{{ .Content }}`,
|
||||
"index.json",
|
||||
`{"Title": "My Site"}`,
|
||||
)
|
||||
|
||||
b.WithContent(
|
||||
"ru/a.md",
|
||||
"",
|
||||
"en/a.md",
|
||||
"",
|
||||
)
|
||||
|
||||
err := b.BuildE(BuildCfg{})
|
||||
c.Assert(err, qt.Equals, nil)
|
||||
|
||||
b.AssertFileContent("public/ru/index.html", `
|
||||
<p>foo</p>
|
||||
<p>foo</p>
|
||||
<p>bar</p>
|
||||
<p>bar</p>
|
||||
`)
|
||||
|
||||
b.AssertFileContent("public/en/index.html", `
|
||||
<p>foo</p>
|
||||
<p>foo</p>
|
||||
<p>bar</p>
|
||||
<p>bar</p>
|
||||
`)
|
||||
|
||||
}
|
||||
|
||||
// Issue 8919
|
||||
func TestContentProviderWithCustomOutputFormat(t *testing.T) {
|
||||
b := newTestSitesBuilder(t)
|
||||
|
|
|
@ -49,6 +49,11 @@ func NewLazyContentProvider(f func() (ContentProvider, error)) *LazyContentProvi
|
|||
return &lcp
|
||||
}
|
||||
|
||||
func (lcp *LazyContentProvider) Init() ContentProvider {
|
||||
lcp.init.Do()
|
||||
return lcp.cp
|
||||
}
|
||||
|
||||
func (lcp *LazyContentProvider) Reset() {
|
||||
lcp.init.Reset()
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue