shithub: hugo

Download patch

ref: 17b21e0af1e716bdc7f80b0b2b19b5e469344b34
parent: 7f68e3199ef3a62aef06251bd641435617257d48
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Mar 25 05:56:00 EDT 2017

hugolib: Correctly identify "my_index_page.md"

The above example was earlier identified as a section page and not a regular page.

Fixes #3234

--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -1859,8 +1859,15 @@
 	return sections
 }
 
+const (
+	regularPageFileNameDoesNotStartWith = "_index"
+
+	// There can be "my_regular_index_page.md but not /_index_file.md
+	regularPageFileNameDoesNotContain = helpers.FilePathSeparator + regularPageFileNameDoesNotStartWith
+)
+
 func kindFromFilename(filename string) string {
-	if !strings.Contains(filename, "_index") {
+	if !strings.HasPrefix(filename, regularPageFileNameDoesNotStartWith) && !strings.Contains(filename, regularPageFileNameDoesNotContain) {
 		return KindPage
 	}
 
--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -201,6 +201,20 @@
 	require.Equal(t, 2017, s.Info.LastChange.Year(), "Site.LastChange should be set to the page with latest Lastmod (year 2017)")
 }
 
+// Issue #_index
+func TestPageWithUnderScoreIndexInFilename(t *testing.T) {
+	t.Parallel()
+
+	cfg, fs := newTestCfg()
+
+	writeSource(t, fs, filepath.Join("content", "sect/my_index_file.md"), "---\ntitle: doc1\nweight: 1\ndate: 2014-05-29\n---\n# doc1\n*some content*")
+
+	s := buildSingleSite(t, deps.DepsCfg{Fs: fs, Cfg: cfg}, BuildCfg{SkipRender: true})
+
+	require.Len(t, s.RegularPages, 1)
+
+}
+
 // Issue #957
 func TestCrossrefs(t *testing.T) {
 	t.Parallel()