From e908d955d25cc5a2a5c783de4de569399773e23e Mon Sep 17 00:00:00 2001
From: =?utf8?q?Bj=C3=B8rn=20Erik=20Pedersen?=
 <bjorn.erik.pedersen@gmail.com>
Date: Thu, 22 Jun 2017 20:30:01 +0200
Subject: [PATCH] create: Fix archetype regression when no archetype file

Fixes #3626
---
 create/content.go                  | 18 +++++++++++-------
 create/content_template_handler.go | 10 +++++-----
 create/content_test.go             |  4 ++--
 3 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/create/content.go b/create/content.go
index e584df73..8af41729 100644
--- a/create/content.go
+++ b/create/content.go
@@ -36,15 +36,19 @@ func NewContent(
 
 	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)
diff --git a/create/content_template_handler.go b/create/content_template_handler.go
index 48e7f3b4..d8c1fc71 100644
--- a/create/content_template_handler.go
+++ b/create/content_template_handler.go
@@ -48,11 +48,11 @@ type ArchetypeFileData struct {
 }
 
 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) {
diff --git a/create/content_test.go b/create/content_test.go
index e8857baf..bd7c34a1 100644
--- a/create/content_test.go
+++ b/create/content_test.go
@@ -46,8 +46,8 @@ func TestNewContent(t *testing.T) {
 		{"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
 	}
 
-- 
2.30.2