shithub: hugo

Download patch

ref: b7ed67d425524717d3cafdde9a5ce3cb92defdc6
parent: 3cd97951f1cb6d7169a8a84a7b86984c05b2d35c
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Mar 25 14:28:38 EDT 2017

hugolib: More TODO fixes

--- a/hugolib/menu_old_test.go
+++ b/hugolib/menu_old_test.go
@@ -452,55 +452,6 @@
 	}
 }
 
-// TODO(bep) output fix or remove
-func _TestTaxonomyNodeMenu(t *testing.T) {
-	t.Parallel()
-
-	type taxRenderInfo struct {
-		key      string
-		singular string
-		plural   string
-	}
-
-	s := setupMenuTests(t, menuPageSources, "canonifyURLs", true)
-
-	for i, this := range []struct {
-		menu           string
-		taxInfo        taxRenderInfo
-		menuItem       *MenuEntry
-		isMenuCurrent  bool
-		hasMenuCurrent bool
-	}{
-		{"tax", taxRenderInfo{key: "key", singular: "one", plural: "two"},
-			findTestMenuEntryByID(s, "tax", "1"), true, false},
-		{"tax", taxRenderInfo{key: "key", singular: "one", plural: "two"},
-			findTestMenuEntryByID(s, "tax", "2"), true, false},
-		{"tax", taxRenderInfo{key: "key", singular: "one", plural: "two"},
-			&MenuEntry{Name: "Somewhere else", URL: "/somewhereelse"}, false, false},
-	} {
-
-		p := s.newTaxonomyPage(this.taxInfo.plural, this.taxInfo.key)
-
-		isMenuCurrent := p.IsMenuCurrent(this.menu, this.menuItem)
-		hasMenuCurrent := p.HasMenuCurrent(this.menu, this.menuItem)
-
-		if isMenuCurrent != this.isMenuCurrent {
-			t.Errorf("[%d] Wrong result from IsMenuCurrent: %v", i, isMenuCurrent)
-		}
-
-		if hasMenuCurrent != this.hasMenuCurrent {
-			t.Errorf("[%d] Wrong result for menuItem %v for HasMenuCurrent: %v", i, this.menuItem, hasMenuCurrent)
-		}
-
-	}
-
-	menuEntryXML := findTestMenuEntryByID(s, "tax", "xml")
-
-	if strings.HasSuffix(menuEntryXML.URL, "/") {
-		t.Error("RSS menu item should not be padded with trailing slash")
-	}
-}
-
 func TestMenuLimit(t *testing.T) {
 	t.Parallel()
 	s := setupMenuTests(t, menuPageSources)
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -119,9 +119,12 @@
 	contentType string
 	renderable  bool
 
-	Layout            string
-	layoutsCalculated []string
+	Layout string
 
+	// For npn-renderable pages (see IsRenderable), the content itself
+	// is used as template and the template name is stored here.
+	selfLayout string
+
 	linkTitle string
 
 	frontmatter []byte
@@ -1379,13 +1382,12 @@
 	// TODO(bep): Check the IsRenderable logic.
 	if p.Kind == KindPage {
 		if !p.IsRenderable() {
-			// TODO(bep) output
 			self := "__" + p.UniqueID()
 			_, err := p.s.Tmpl.GetClone().New(self).Parse(string(p.Content))
 			if err != nil {
 				return err
 			}
-			p.layoutsCalculated = []string{self}
+			p.selfLayout = self
 		}
 	}
 	return nil
--- a/hugolib/page_output.go
+++ b/hugolib/page_output.go
@@ -48,8 +48,7 @@
 }
 
 func newPageOutput(p *Page, createCopy bool, f output.Format) (*PageOutput, error) {
-	// For tests
-	// TODO(bep) output get rid of this
+	// TODO(bep) This is only needed for tests and we should get rid of it.
 	if p.targetPathDescriptorPrototype == nil {
 		if err := p.initTargetPathDescriptor(); err != nil {
 			return nil, err
@@ -87,9 +86,8 @@
 }
 
 func (p *PageOutput) layouts(layouts ...string) []string {
-	// TODO(bep) output the logic here needs to be redone.
-	if len(layouts) == 0 && len(p.layoutsCalculated) > 0 {
-		return p.layoutsCalculated
+	if len(layouts) == 0 && p.selfLayout != "" {
+		return []string{p.selfLayout}
 	}
 
 	layoutOverride := ""
--- a/hugolib/site_render.go
+++ b/hugolib/site_render.go
@@ -79,9 +79,8 @@
 
 			var layouts []string
 
-			if len(pageOutput.layoutsCalculated) > 0 {
-				// TODO(bep) output
-				layouts = pageOutput.layoutsCalculated
+			if page.selfLayout != "" {
+				layouts = []string{page.selfLayout}
 			} else {
 				layouts = s.layouts(pageOutput)
 			}
--- a/output/layout.go
+++ b/output/layout.go
@@ -30,7 +30,6 @@
 }
 
 // Layout calculates the layout template to use to render a given output type.
-// TODO(bep) output improve names
 type LayoutHandler struct {
 	hasTheme bool