create: Fix archetype regression when no archetype file

Fixes #3626
This commit is contained in:
Bjørn Erik Pedersen 2017-06-22 20:30:01 +02:00
parent 8b620f7a8a
commit e908d955d2
3 changed files with 18 additions and 14 deletions

View File

@ -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)

View File

@ -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) {

View File

@ -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
}