mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00:00 
			
		
		
		
	| @@ -136,3 +136,42 @@ Sort: [éclair emma xylophone zulu] | ||||
| ByWeight: alpha|émotion|zulu| | ||||
| `) | ||||
| } | ||||
|  | ||||
| // See #10377 | ||||
| func TestPermalinkExpansionSectionsRepeated(t *testing.T) { | ||||
| 	t.Parallel() | ||||
|  | ||||
| 	files := ` | ||||
| -- hugo.toml -- | ||||
| disableKinds = ["home", "taxonomy", "taxonomyTerm", "sitemap"] | ||||
| [outputs] | ||||
| home = ["HTML"] | ||||
| page = ["HTML"] | ||||
| section = ["HTML"] | ||||
| [outputFormats] | ||||
| [permalinks] | ||||
| posts = '/:sections[1]/:sections[last]/:slug' | ||||
| -- content/posts/_index.md -- | ||||
| -- content/posts/a/_index.md -- | ||||
| -- content/posts/a/b/_index.md -- | ||||
| -- content/posts/a/b/c/_index.md -- | ||||
| -- content/posts/a/b/c/d.md -- | ||||
| --- | ||||
| title: "D" | ||||
| slug: "d" | ||||
| --- | ||||
| D | ||||
| -- layouts/_default/single.html -- | ||||
| RelPermalink: {{ .RelPermalink }} | ||||
|  | ||||
| ` | ||||
|  | ||||
| 	b := hugolib.NewIntegrationTestBuilder( | ||||
| 		hugolib.IntegrationTestConfig{ | ||||
| 			T:           t, | ||||
| 			TxtarString: files, | ||||
| 		}).Build() | ||||
|  | ||||
| 	b.AssertFileContent("public/a/c/d/index.html", "RelPermalink: /a/c/d/") | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -176,7 +176,7 @@ func (l PermalinkExpander) parse(patterns map[string]string) (map[string]func(Pa | ||||
| // can return a string to go in that position in the page (or an error) | ||||
| type pageToPermaAttribute func(Page, string) (string, error) | ||||
|  | ||||
| var attributeRegexp = regexp.MustCompile(`:\w+(\[.+\])?`) | ||||
| var attributeRegexp = regexp.MustCompile(`:\w+(\[.+?\])?`) | ||||
|  | ||||
| // validate determines if a PathPattern is well-formed | ||||
| func (l PermalinkExpander) validate(pp string) bool { | ||||
|   | ||||
| @@ -42,6 +42,7 @@ var testdataPermalinks = []struct { | ||||
| 	{"/:2006_01_02_15_04_05.000", true, "/2012_04_06_03_01_59.000"}, // Complicated custom date format | ||||
| 	{"/:sections/", true, "/a/b/c/"},                                // Sections | ||||
| 	{"/:sections[last]/", true, "/c/"},                              // Sections | ||||
| 	{"/:sections[0]/:sections[last]/", true, "/a/c/"},               // Sections | ||||
|  | ||||
| 	// Failures | ||||
| 	{"/blog/:fred", false, ""}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user