diff options
Diffstat (limited to 'hugolib/page_test.go')
-rw-r--r-- | hugolib/page_test.go | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/hugolib/page_test.go b/hugolib/page_test.go index 7d55787c8..fc01bbf25 100644 --- a/hugolib/page_test.go +++ b/hugolib/page_test.go @@ -36,6 +36,7 @@ import ( "github.com/gohugoio/hugo/resources/page" "github.com/gohugoio/hugo/resources/resource" "github.com/spf13/afero" + "github.com/spf13/jwalterweatherman" qt "github.com/frankban/quicktest" "github.com/gohugoio/hugo/deps" @@ -767,6 +768,184 @@ Here is the last report for commits in the year 2016. It covers hrev50718-hrev50 `) } +// Issue 8919 +func TestContentProviderWithCustomOutputFormat(t *testing.T) { + b := newTestSitesBuilder(t) + b.WithLogger(loggers.NewBasicLoggerForWriter(jwalterweatherman.LevelDebug, os.Stderr)) + b.WithConfigFile("toml", `baseURL = 'http://example.org/' +title = 'My New Hugo Site' + +timeout = 600000 # ten minutes in case we want to pause and debug + +defaultContentLanguage = "en" + +[languages] + [languages.en] + title = "Repro" + languageName = "English" + contentDir = "content/en" + + [languages.zh_CN] + title = "Repro" + languageName = "简体中文" + contentDir = "content/zh_CN" + +[outputFormats] + [outputFormats.metadata] + baseName = "metadata" + mediaType = "text/html" + isPlainText = true + notAlternative = true + +[outputs] + home = ["HTML", "metadata"]`) + + b.WithTemplates("home.metadata.html", `<h2>Translations metadata</h2> +<ul> +{{ $p := .Page }} +{{ range $p.Translations}} +<li>Title: {{ .Title }}, {{ .Summary }}</li> +<li>Content: {{ .Content }}</li> +<li>Plain: {{ .Plain }}</li> +<li>PlainWords: {{ .PlainWords }}</li> +<li>Summary: {{ .Summary }}</li> +<li>Truncated: {{ .Truncated }}</li> +<li>FuzzyWordCount: {{ .FuzzyWordCount }}</li> +<li>ReadingTime: {{ .ReadingTime }}</li> +<li>Len: {{ .Len }}</li> +{{ end }} +</ul>`) + + b.WithTemplates("_default/baseof.html", `<html> + +<body> + {{ block "main" . }}{{ end }} +</body> + +</html>`) + + b.WithTemplates("_default/home.html", `{{ define "main" }} +<h2>Translations</h2> +<ul> +{{ $p := .Page }} +{{ range $p.Translations}} +<li>Title: {{ .Title }}, {{ .Summary }}</li> +<li>Content: {{ .Content }}</li> +<li>Plain: {{ .Plain }}</li> +<li>PlainWords: {{ .PlainWords }}</li> +<li>Summary: {{ .Summary }}</li> +<li>Truncated: {{ .Truncated }}</li> +<li>FuzzyWordCount: {{ .FuzzyWordCount }}</li> +<li>ReadingTime: {{ .ReadingTime }}</li> +<li>Len: {{ .Len }}</li> +{{ end }} +</ul> +{{ end }}`) + + b.WithContent("en/_index.md", `--- +title: Title (en) +summary: Summary (en) +--- + +Here is some content. +`) + + b.WithContent("zh_CN/_index.md", `--- +title: Title (zh) +summary: Summary (zh) +--- + +这是一些内容 +`) + + b.Build(BuildCfg{}) + + b.AssertFileContent("public/index.html", `<html> + +<body> + +<h2>Translations</h2> +<ul> + + +<li>Title: Title (zh), Summary (zh)</li> +<li>Content: <p>这是一些内容</p> +</li> +<li>Plain: 这是一些内容 +</li> +<li>PlainWords: [这是一些内容]</li> +<li>Summary: Summary (zh)</li> +<li>Truncated: false</li> +<li>FuzzyWordCount: 100</li> +<li>ReadingTime: 1</li> +<li>Len: 26</li> + +</ul> + +</body> + +</html>`) + b.AssertFileContent("public/metadata.html", `<h2>Translations metadata</h2> +<ul> + + +<li>Title: Title (zh), Summary (zh)</li> +<li>Content: <p>这是一些内容</p> +</li> +<li>Plain: 这是一些内容 +</li> +<li>PlainWords: [这是一些内容]</li> +<li>Summary: Summary (zh)</li> +<li>Truncated: false</li> +<li>FuzzyWordCount: 100</li> +<li>ReadingTime: 1</li> +<li>Len: 26</li> + +</ul>`) + b.AssertFileContent("public/zh_cn/index.html", `<html> + +<body> + +<h2>Translations</h2> +<ul> + + +<li>Title: Title (en), Summary (en)</li> +<li>Content: <p>Here is some content.</p> +</li> +<li>Plain: Here is some content. +</li> +<li>PlainWords: [Here is some content.]</li> +<li>Summary: Summary (en)</li> +<li>Truncated: false</li> +<li>FuzzyWordCount: 100</li> +<li>ReadingTime: 1</li> +<li>Len: 29</li> + +</ul> + +</body> + +</html>`) + b.AssertFileContent("public/zh_cn/metadata.html", `<h2>Translations metadata</h2> +<ul> + + +<li>Title: Title (en), Summary (en)</li> +<li>Content: <p>Here is some content.</p> +</li> +<li>Plain: Here is some content. +</li> +<li>PlainWords: [Here is some content.]</li> +<li>Summary: Summary (en)</li> +<li>Truncated: false</li> +<li>FuzzyWordCount: 100</li> +<li>ReadingTime: 1</li> +<li>Len: 29</li> + +</ul>`) +} + func TestPageWithDate(t *testing.T) { t.Parallel() cfg, fs := newTestCfg() |