shithub: hugo

Download patch

ref: e8831a056b5664c3a066b9a9c4c618d1f483b10c
parent: 74b6c4e5ff5ee16f0e6b352a26c1e58b90a25dc6
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Sun Jan 26 10:53:42 EST 2020

hubolib: Revert to .Type = "page" when empty

This was changed with good intentions in 0.63.0.

This behaviour was not documented, but it was of course in use.

This commit rolls back to how it behaved before:

For `Page.Type` you will get:

* `type` from front matter if set.
* `.Section`
* If none of the above returns anything, return "page"

Fixes #6805

--- a/hugolib/cascade_test.go
+++ b/hugolib/cascade_test.go
@@ -68,12 +68,13 @@
         42|taxonomy|tags/blue|blue|home.png|tags|HTML-|
         42|section|sect3|Cascade Home|home.png|sect3|HTML-|
         42|taxonomyTerm|tags|Cascade Home|home.png|tags|HTML-|
-        42|page|p2.md|Cascade Home|home.png||HTML-|
+        42|page|bundle1/index.md|Cascade Home|home.png|page|HTML-|
+        42|page|p2.md|Cascade Home|home.png|page|HTML-|
         42|page|sect2/p2.md|Cascade Home|home.png|sect2|HTML-|
         42|page|sect3/p1.md|Cascade Home|home.png|sect3|HTML-|
         42|taxonomy|tags/green|green|home.png|tags|HTML-|
-        42|home|_index.md|Home|home.png||HTML-|
-        42|page|p1.md|p1|home.png||HTML-|
+        42|home|_index.md|Home|home.png|page|HTML-|
+        42|page|p1.md|p1|home.png|page|HTML-|
         42|section|sect1/_index.md|Sect1|sect1.png|stype|HTML-|
         42|section|sect1/s1_2/_index.md|Sect1_2|sect1.png|stype|HTML-|
         42|page|sect1/s1_2/p1.md|Sect1_2_p1|sect1.png|stype|HTML-|
--- a/hugolib/page__meta.go
+++ b/hugolib/page__meta.go
@@ -291,12 +291,18 @@
 	return p.title
 }
 
+const defaultContentType = "page"
+
 func (p *pageMeta) Type() string {
 	if p.contentType != "" {
 		return p.contentType
 	}
 
-	return p.Section()
+	if sect := p.Section(); sect != "" {
+		return sect
+	}
+
+	return defaultContentType
 }
 
 func (p *pageMeta) Weight() int {
--- a/hugolib/page_test.go
+++ b/hugolib/page_test.go
@@ -333,6 +333,12 @@
 	}
 }
 
+func checkPageType(t *testing.T, page page.Page, pageType string) {
+	if page.Type() != pageType {
+		t.Fatalf("Page type is: %s.  Expected: %s", page.Type(), pageType)
+	}
+}
+
 func checkPageDate(t *testing.T, page page.Page, time time.Time) {
 	if page.Date() != time {
 		t.Fatalf("Page date is: %s.  Expected: %s", page.Date(), time)
@@ -536,6 +542,7 @@
 		checkPageTitle(t, p, "Simple")
 		checkPageContent(t, p, normalizeExpected(ext, "<p>Simple Page</p>\n"))
 		checkPageSummary(t, p, "Simple Page")
+		checkPageType(t, p, "page")
 	}
 
 	settings := map[string]interface{}{
@@ -555,6 +562,7 @@
 			checkPageContent(t, p, normalizeExpected(ext, "<p><a href=\"https://lipsum.com/\">Lorem ipsum</a> dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n\n<p>Additional text.</p>\n\n<p>Further text.</p>\n"), ext)
 			checkPageSummary(t, p, normalizeExpected(ext, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Additional text."), ext)
 		}
+		checkPageType(t, p, "page")
 	}
 
 	testAllMarkdownEnginesForPages(t, assertFunc, nil, simplePageWithoutSummaryDelimiter)
@@ -567,6 +575,7 @@
 		checkPageTitle(t, p, "Simple")
 		checkPageContent(t, p, normalizeExpected(ext, "<p>Summary Next Line</p>\n\n<p>Some more text</p>\n"), ext)
 		checkPageSummary(t, p, normalizeExpected(ext, "<p>Summary Next Line</p>"), ext)
+		checkPageType(t, p, "page")
 	}
 
 	testAllMarkdownEnginesForPages(t, assertFunc, nil, simplePageWithSummaryDelimiter)
@@ -582,6 +591,7 @@
 		if ext != "ad" && ext != "rst" {
 			checkPageSummary(t, p, normalizeExpected(ext, "Page with summary parameter and <a href=\"http://www.example.com/\">a link</a>"), ext)
 		}
+		checkPageType(t, p, "page")
 	}
 
 	testAllMarkdownEnginesForPages(t, assertFunc, nil, simplePageWithSummaryParameter)
@@ -653,6 +663,7 @@
 		checkPageTitle(t, p, "Simple")
 		checkPageContent(t, p, normalizeExpected(ext, "<p>Summary Next Line. <figure> <img src=\"/not/real\"/> </figure> . More text here.</p><p>Some more text</p>"))
 		checkPageSummary(t, p, "Summary Next Line.  . More text here. Some more text")
+		checkPageType(t, p, "page")
 	}
 
 	testAllMarkdownEnginesForPages(t, assertFunc, nil, simplePageWithShortcodeInSummary)
@@ -702,6 +713,8 @@
 		checkPageTitle(t, p, "Simple")
 		checkPageContent(t, p, normalizeExpected(ext, "<p>Summary Same Line</p>\n\n<p>Some more text</p>\n"))
 		checkPageSummary(t, p, normalizeExpected(ext, "<p>Summary Same Line</p>"))
+		checkPageType(t, p, "page")
+
 	}
 
 	testAllMarkdownEnginesForPages(t, assertFunc, nil, simplePageWithSummaryDelimiterSameLine)