summaryrefslogtreecommitdiffstats
path: root/create
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-01-28 19:38:10 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-01-28 19:41:55 +0100
commit863a812e07193541b42732b0e227f3d320433f01 (patch)
tree45ee62687266d914a5b507bca552815db6411e4f /create
parentf08ea02d24d42929676756950f3affaca7fd8c01 (diff)
create: Provide .Name to the archetype templates
This value will have a better suited value to base the titles on in your archetype templates when creating bundle ´index.md` type of files. The internal template is updates, but you will have to update any custom archetype template to use the new `.Name` variable: ```bash --- title: "{{ replace .Name "-" " " | title }}" date: {{ .Date }} draft: true --- ``` Fixes #4348
Diffstat (limited to 'create')
-rw-r--r--create/content_template_handler.go17
1 files changed, 16 insertions, 1 deletions
diff --git a/create/content_template_handler.go b/create/content_template_handler.go
index 3b1f850c5..99f2d1fa3 100644
--- a/create/content_template_handler.go
+++ b/create/content_template_handler.go
@@ -16,6 +16,7 @@ package create
import (
"bytes"
"fmt"
+ "path/filepath"
"strings"
"time"
@@ -43,6 +44,12 @@ type ArchetypeFileData struct {
// on the presence of language code in the filename.
Site *hugolib.Site
+ // Name will in most cases be the same as TranslationBaseName, e.g. "my-post".
+ // But if that value is "index" (bundles), the Name is instead the owning folder.
+ // This is the value you in most cases would want to use to construct the title in your
+ // archetype template.
+ Name string
+
// The target content file. Note that the .Content will be empty, as that
// has not been created yet.
source.File
@@ -51,7 +58,7 @@ type ArchetypeFileData struct {
const (
// ArchetypeTemplateTemplate is used as initial template when adding an archetype template.
ArchetypeTemplateTemplate = `---
-title: "{{ replace .TranslationBaseName "-" " " | title }}"
+title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---
@@ -84,9 +91,17 @@ func executeArcheTypeAsTemplate(s *hugolib.Site, kind, targetPath, archetypeFile
sp := source.NewSourceSpec(s.Deps.Cfg, s.Deps.Fs)
f := sp.NewFileInfo("", targetPath, false, nil)
+ name := f.TranslationBaseName()
+ if name == "index" || name == "_index" {
+ // Page bundles; the directory name will hopefully have a better name.
+ dir := strings.TrimSuffix(f.Dir(), helpers.FilePathSeparator)
+ _, name = filepath.Split(dir)
+ }
+
data := ArchetypeFileData{
Type: kind,
Date: time.Now().Format(time.RFC3339),
+ Name: name,
File: f,
Site: s,
}