mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00:00 
			
		
		
		
	| @@ -1511,6 +1511,8 @@ func (sa *sitePagesAssembler) assembleTermsAndTranslations() error { | |||||||
| 						} | 						} | ||||||
| 						pages.InsertIntoValuesDimension(pi.Base(), n) | 						pages.InsertIntoValuesDimension(pi.Base(), n) | ||||||
| 						term = pages.Get(pi.Base()) | 						term = pages.Get(pi.Base()) | ||||||
|  | 					} else if term.(*pageState).m.term != v { | ||||||
|  | 						term.(*pageState).m.term = v | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
| 					if s == "" { | 					if s == "" { | ||||||
| @@ -1882,11 +1884,15 @@ func (m *pageMap) CreateSiteTaxonomies(ctx context.Context) error { | |||||||
| 					if taxonomy == nil { | 					if taxonomy == nil { | ||||||
| 						return true, fmt.Errorf("missing taxonomy: %s", viewName.plural) | 						return true, fmt.Errorf("missing taxonomy: %s", viewName.plural) | ||||||
| 					} | 					} | ||||||
|  | 					if p.m.term == "" { | ||||||
|  | 						panic("term is empty") | ||||||
|  | 					} | ||||||
| 					k := strings.ToLower(p.m.term) | 					k := strings.ToLower(p.m.term) | ||||||
|  |  | ||||||
| 					err := m.treeTaxonomyEntries.WalkPrefix( | 					err := m.treeTaxonomyEntries.WalkPrefix( | ||||||
| 						doctree.LockTypeRead, | 						doctree.LockTypeRead, | ||||||
| 						paths.AddTrailingSlash(s), | 						paths.AddTrailingSlash(s), | ||||||
| 						func(s string, wn *weightedContentNode) (bool, error) { | 						func(ss string, wn *weightedContentNode) (bool, error) { | ||||||
| 							taxonomy[k] = append(taxonomy[k], page.NewWeightedPage(wn.weight, wn.n.(page.Page), wn.term.Page())) | 							taxonomy[k] = append(taxonomy[k], page.NewWeightedPage(wn.weight, wn.n.(page.Page), wn.term.Page())) | ||||||
| 							return false, nil | 							return false, nil | ||||||
| 						}, | 						}, | ||||||
|   | |||||||
| @@ -148,6 +148,7 @@ func (h *HugoSites) newPage(m *pageMeta) (*pageState, *paths.Path, error) { | |||||||
| 						m.pageConfig.Kind = kinds.KindTaxonomy | 						m.pageConfig.Kind = kinds.KindTaxonomy | ||||||
| 					} else { | 					} else { | ||||||
| 						m.pageConfig.Kind = kinds.KindTerm | 						m.pageConfig.Kind = kinds.KindTerm | ||||||
|  | 						m.term = m.pathInfo.Unnormalized().BaseNameNoIdentifier() | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} else if m.f != nil { | 			} else if m.f != nil { | ||||||
|   | |||||||
| @@ -776,3 +776,42 @@ Len Book Authors: {{ len (index .Site.Taxonomies $taxonomy) }} | |||||||
|  |  | ||||||
| 	b.AssertFileContent("public/index.html", "Len Book Authors: 2") | 	b.AssertFileContent("public/index.html", "Len Book Authors: 2") | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func TestTaxonomiesListTermsHome(t *testing.T) { | ||||||
|  | 	files := ` | ||||||
|  | -- hugo.toml -- | ||||||
|  | baseURL = "https://example.com" | ||||||
|  | [taxonomies] | ||||||
|  | tag = "tags" | ||||||
|  | -- content/_index.md -- | ||||||
|  | --- | ||||||
|  | title: "Home" | ||||||
|  | tags: ["a", "b", "c", "hello world"] | ||||||
|  | --- | ||||||
|  | -- content/tags/a/_index.md -- | ||||||
|  | --- | ||||||
|  | title: "A" | ||||||
|  | --- | ||||||
|  | -- content/tags/b/_index.md -- | ||||||
|  | --- | ||||||
|  | title: "B" | ||||||
|  | --- | ||||||
|  | -- content/tags/c/_index.md -- | ||||||
|  | --- | ||||||
|  | title: "C" | ||||||
|  | --- | ||||||
|  | -- content/tags/d/_index.md -- | ||||||
|  | --- | ||||||
|  | title: "D" | ||||||
|  | --- | ||||||
|  | -- content/tags/hello-world/_index.md -- | ||||||
|  | --- | ||||||
|  | title: "Hello World!" | ||||||
|  | --- | ||||||
|  | -- layouts/home.html -- | ||||||
|  | Terms: {{ range site.Taxonomies.tags }}{{ .Page.Title }}: {{ .Count }}|{{ end }}$ | ||||||
|  | ` | ||||||
|  | 	b := Test(t, files) | ||||||
|  |  | ||||||
|  | 	b.AssertFileContent("public/index.html", "Terms: A: 1|B: 1|C: 1|Hello World!: 1|$") | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user