diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-01-28 21:38:10 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-01-28 21:41:55 +0300 |
commit | 863a812e07193541b42732b0e227f3d320433f01 (patch) | |
tree | 45ee62687266d914a5b507bca552815db6411e4f | |
parent | f08ea02d24d42929676756950f3affaca7fd8c01 (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
-rw-r--r-- | create/content_template_handler.go | 17 |
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, } |