This mapping was added in Hugo `v0.146.0`.
Fixes #14740
b.EditFileReplaceAll("content/p1.md", "Content before shortcode.", "This is {{< year >}} wow.").Build()
b.AssertFileContent("public/p1/index.html", "Single: P1|", fmt.Sprintf("This is %s wow.", currentYear))
}
+
+// Issue 14740.
+func TestRebuildEditTagsListLayout(t *testing.T) {
+ files := `
+-- hugo.toml --
+baseURL = "https://example.com"
+-- layouts/tags/list.html --
+Foo.
+`
+
+ b := TestRunning(t, files)
+ b.AssertFileContent("public/tags/index.html", "Foo.")
+ b.EditFileReplaceAll("layouts/tags/list.html", "Foo", "Bar").Build()
+ b.AssertFileContent("public/tags/index.html", "Bar.")
+}
"_shortcodes/twitter.html": {"_shortcodes/tweet.html"},
}
-func (s *TemplateStore) parseTemplate(ti *TemplInfo, replace bool) error {
- err := s.tns.doParseTemplate(ti, replace)
+func (s *TemplateStore) parseTemplate(ti *TemplInfo) error {
+ err := s.tns.doParseTemplate(ti)
if err != nil {
return s.addFileContext(ti, "parse of template failed", err)
}
return tt
}
-func (t *templateNamespace) doParseTemplate(ti *TemplInfo, replace bool) error {
+func (t *templateNamespace) doParseTemplate(ti *TemplInfo) error {
if !ti.noBaseOf || ti.category == CategoryBaseof {
// Delay parsing until we have the base template.
return nil
if ti.D.IsPlainText {
prototype := t.parseText
- if !replace && prototype.Lookup(name) != nil {
+ if prototype.Lookup(name) != nil {
name += "-" + strconv.FormatUint(t.nameCounter.Add(1), 10)
}
templ, err = prototype.New(name).Parse(ti.content)
}
} else {
prototype := t.parseHTML
- if !replace && prototype.Lookup(name) != nil {
+ if prototype.Lookup(name) != nil {
name += "-" + strconv.FormatUint(t.nameCounter.Add(1), 10)
}
templ, err = prototype.New(name).Parse(ti.content)
if err := s.insertEmbedded(); err != nil {
return nil, err
}
- if err := s.parseTemplates(false); err != nil {
+ if err := s.parseTemplates(); err != nil {
return nil, err
}
if err := s.extractInlinePartials(false); err != nil {
if err := s.createTemplatesSnapshot(); err != nil {
return err
}
- if err := s.parseTemplates(true); err != nil {
+ if err := s.parseTemplates(); err != nil {
return err
}
if err := s.extractInlinePartials(true); err != nil {
return tree, nil
}
-func (s *TemplateStore) parseTemplates(replace bool) error {
+func (s *TemplateStore) parseTemplates() error {
if err := func() error {
// Read and parse all templates.
for _, v := range s.treeMain.All() {
if vv.state == processingStateTransformed {
continue
}
- if err := s.parseTemplate(vv, replace); err != nil {
+ if err := s.parseTemplate(vv); err != nil {
return err
}
}
// The regular expression used to detect if a template needs a base template has some
// rare false positives. Assume we don't need one.
vv.noBaseOf = true
- if err := s.parseTemplate(vv, replace); err != nil {
+ if err := s.parseTemplate(vv); err != nil {
return err
}
continue
if vvv.state == processingStateTransformed {
continue
}
- if err := s.parseTemplate(vvv, replace); err != nil {
+ if err := s.parseTemplate(vvv); err != nil {
return err
}
}