shithub: hugo

Download patch

ref: e908d955d25cc5a2a5c783de4de569399773e23e
parent: 8b620f7a8a729943d279e20a3250304e7a7713cf
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Jun 22 16:30:01 EDT 2017

create: Fix archetype regression when no archetype file

Fixes #3626

--- a/create/content.go
+++ b/create/content.go
@@ -36,15 +36,19 @@
 
 	archetypeFilename := findArchetype(ps, kind, ext)
 
-	f, err := ps.Fs.Source.Open(archetypeFilename)
-	if err != nil {
-		return err
-	}
-	defer f.Close()
 	// Building the sites can be expensive, so only do it if really needed.
 	siteUsed := false
-	if helpers.ReaderContains(f, []byte(".Site")) {
-		siteUsed = true
+
+	if archetypeFilename != "" {
+		f, err := ps.Fs.Source.Open(archetypeFilename)
+		if err != nil {
+			return err
+		}
+		defer f.Close()
+
+		if helpers.ReaderContains(f, []byte(".Site")) {
+			siteUsed = true
+		}
 	}
 
 	s, err := siteFactory(targetPath, siteUsed)
--- a/create/content_template_handler.go
+++ b/create/content_template_handler.go
@@ -48,11 +48,11 @@
 }
 
 const (
-	archetypeTemplateTemplate = `+++
-title = "{{ replace .TranslationBaseName "-" " " | title }}"
-date = {{ .Date }}
-draft = true
-+++`
+	archetypeTemplateTemplate = `---
+title: "{{ replace .TranslationBaseName "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---`
 )
 
 func executeArcheTypeAsTemplate(s *hugolib.Site, kind, targetPath, archetypeFilename string) ([]byte, error) {
--- a/create/content_test.go
+++ b/create/content_test.go
@@ -46,8 +46,8 @@
 		{"post", "post/sample-1.md", []string{`title = "Post Arch title"`, `test = "test1"`, "date = \"2015-01-12T19:20:04-07:00\""}},
 		{"post", "post/org-1.org", []string{`#+title: ORG-1`}},
 		{"emptydate", "post/sample-ed.md", []string{`title = "Empty Date Arch title"`, `test = "test1"`}},
-		{"stump", "stump/sample-2.md", []string{`title = "Sample 2"`}},     // no archetype file
-		{"", "sample-3.md", []string{`title = "Sample 3"`}},                // no archetype
+		{"stump", "stump/sample-2.md", []string{`title: "Sample 2"`}},      // no archetype file
+		{"", "sample-3.md", []string{`title: "Sample 3"`}},                 // no archetype
 		{"product", "product/sample-4.md", []string{`title = "SAMPLE-4"`}}, // empty archetype front matter
 	}