mirror of
https://github.com/gohugoio/hugo.git
synced 2025-09-02 22:52:51 +02:00
@@ -981,14 +981,17 @@ func (h *HugoSites) resetPageStateFromEvents(idset identity.Identities) {
|
||||
}
|
||||
|
||||
for _, s := range p.shortcodeState.shortcodes {
|
||||
for id := range idset {
|
||||
if idm, ok := s.info.(identity.Manager); ok && idm.Search(id) != nil {
|
||||
for _, po := range p.pageOutputs {
|
||||
if po.cp != nil {
|
||||
po.cp.Reset()
|
||||
for _, templ := range s.templs {
|
||||
sid := templ.(identity.Manager)
|
||||
for id := range idset {
|
||||
if sid.Search(id) != nil {
|
||||
for _, po := range p.pageOutputs {
|
||||
if po.cp != nil {
|
||||
po.cp.Reset()
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -26,6 +26,7 @@ baseURL = "https://example.com"
|
||||
title = "Rebuild this"
|
||||
contentDir = "content"
|
||||
enableInlineShortcodes = true
|
||||
timeout = "5s"
|
||||
|
||||
|
||||
`
|
||||
@@ -213,6 +214,46 @@ prender: {{ $p.Title }}|{{ $p.Content }}
|
||||
|
||||
b.AssertFileContent("public/index.html", `
|
||||
Render /prender/: Baseof:Single Main: Page 1|Mypartial1: Mypartial1|Mypartial3: Mypartial3 Edited:END
|
||||
`)
|
||||
|
||||
})
|
||||
|
||||
t.Run("Edit RSS shortcode", func(t *testing.T) {
|
||||
b := createSiteBuilder(t)
|
||||
|
||||
b.WithContent("output.md", `---
|
||||
title: Output
|
||||
outputs: ["HTML", "AMP"]
|
||||
layout: output
|
||||
---
|
||||
|
||||
Content for Output.
|
||||
|
||||
{{< output >}}
|
||||
|
||||
`)
|
||||
|
||||
b.WithTemplates(
|
||||
"layouts/_default/output.html", `Output HTML: {{ .RelPermalink }}|{{ .Content }}`,
|
||||
"layouts/_default/output.amp.html", `Output AMP: {{ .RelPermalink }}|{{ .Content }}`,
|
||||
"layouts/shortcodes/output.html", `Output Shortcode HTML`,
|
||||
"layouts/shortcodes/output.amp.html", `Output Shortcode AMP`)
|
||||
|
||||
b.Build(BuildCfg{})
|
||||
|
||||
b.AssertFileContent("public/output/index.html", `
|
||||
Output Shortcode HTML
|
||||
`)
|
||||
b.AssertFileContent("public/amp/output/index.html", `
|
||||
Output Shortcode AMP
|
||||
`)
|
||||
|
||||
b.EditFiles("layouts/shortcodes/output.amp.html", `Output Shortcode AMP Edited`)
|
||||
|
||||
b.Build(BuildCfg{})
|
||||
|
||||
b.AssertFileContent("public/amp/output/index.html", `
|
||||
Output Shortcode AMP Edited
|
||||
`)
|
||||
|
||||
})
|
||||
|
@@ -176,7 +176,8 @@ type shortcode struct {
|
||||
ordinal int
|
||||
err error
|
||||
|
||||
info tpl.Info
|
||||
info tpl.Info // One of the output formats (arbitrary)
|
||||
templs []tpl.Template // All output formats
|
||||
|
||||
// If set, the rendered shortcode is sent as part of the surrounding content
|
||||
// to Blackfriday and similar.
|
||||
@@ -541,15 +542,14 @@ Loop:
|
||||
|
||||
sc.name = currItem.ValStr()
|
||||
|
||||
// Check if the template expects inner content.
|
||||
// We pick the first template for an arbitrary output format
|
||||
// if more than one. It is "all inner or no inner".
|
||||
tmpl, found, _ := s.s.Tmpl().LookupVariant(sc.name, tpl.TemplateVariants{})
|
||||
if !found {
|
||||
// Used to check if the template expects inner content.
|
||||
templs := s.s.Tmpl().LookupVariants(sc.name)
|
||||
if templs == nil {
|
||||
return nil, _errors.Errorf("template for shortcode %q not found", sc.name)
|
||||
}
|
||||
|
||||
sc.info = tmpl.(tpl.Info)
|
||||
sc.info = templs[0].(tpl.Info)
|
||||
sc.templs = templs
|
||||
case currItem.IsInlineShortcodeName():
|
||||
sc.name = currItem.ValStr()
|
||||
sc.isInline = true
|
||||
|
Reference in New Issue
Block a user