From 422057f60709696bbbd1c38c9ead2bf114d47e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sun, 18 Jun 2017 19:06:28 +0200 Subject: create: Use archetype template as-is as a Go template This commit removes the fragile front matter decoding, and takes the provided archetype file as-is and processes it as a template. This also means that we no longer will attempt to fill in default values for `title` and `date`. The upside is that it is now easy to create these values in a dynamic way: ```toml +++ title = {{ .BaseFileName | title }} date = {{ .Date }} draft = true +++ ``` You can currently use all of Hugo's template funcs, but the data context is currently very shallow: * `.Type` gives the archetype kind provided * `.Name` gives the target file name without extension. * `.Path` gives the target file name * `.Date` gives the current time as RFC3339 formatted string The above will probably be extended in #1629. Fixes #452 Updates #1629 --- create/content_test.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'create/content_test.go') diff --git a/create/content_test.go b/create/content_test.go index 8eaaf7bf5..aa7ed3fcf 100644 --- a/create/content_test.go +++ b/create/content_test.go @@ -45,9 +45,9 @@ 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\""}}, {"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 - {"product", "product/sample-4.md", []string{`title = "sample 4"`}}, // empty archetype front matter + {"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 } for _, c := range cases { @@ -108,8 +108,10 @@ func initFs(fs *hugofs.Fs) error { content: "+++\ndate = \"2015-01-12T19:20:04-07:00\"\ntitle = \"Post Arch title\"\ntest = \"test1\"\n+++\n", }, { - path: filepath.Join("archetypes", "product.md"), - content: "+++\n+++\n", + path: filepath.Join("archetypes", "product.md"), + content: `+++ +title = "{{ .BaseFileName | upper }}" ++++`, }, { path: filepath.Join("archetypes", "emptydate.md"), -- cgit v1.2.3