mirror of
https://github.com/gohugoio/hugo.git
synced 2025-04-28 06:30:33 +03:00
hugolib: Fix some shortcode vs .Content corner cases
This is a follow-up to #4632. There were some assumptions in that implementation that did not hold water in all situations. This commit simplifies the content lazy initalization making it more robust. Fixes #4664
This commit is contained in:
parent
44e47478d0
commit
288c396439
8 changed files with 175 additions and 109 deletions
|
@ -366,7 +366,12 @@ func (s *shortcodeHandler) updateDelta() bool {
|
|||
s.contentShortcodes = createShortcodeRenderers(s.shortcodes, s.p.withoutContent())
|
||||
})
|
||||
|
||||
contentShortcodes := s.contentShortcodesForOutputFormat(s.p.s.rc.Format)
|
||||
if !s.p.shouldRenderTo(s.p.s.rc.Format) {
|
||||
// TODO(bep) add test for this re translations
|
||||
return false
|
||||
}
|
||||
of := s.p.s.rc.Format
|
||||
contentShortcodes := s.contentShortcodesForOutputFormat(of)
|
||||
|
||||
if s.contentShortcodesDelta == nil || s.contentShortcodesDelta.Len() == 0 {
|
||||
s.contentShortcodesDelta = contentShortcodes
|
||||
|
@ -387,13 +392,19 @@ func (s *shortcodeHandler) updateDelta() bool {
|
|||
return delta.Len() > 0
|
||||
}
|
||||
|
||||
func (s *shortcodeHandler) clearDelta() {
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
s.contentShortcodesDelta = newOrderedMap()
|
||||
}
|
||||
|
||||
func (s *shortcodeHandler) contentShortcodesForOutputFormat(f output.Format) *orderedMap {
|
||||
contentShortcodesForOuputFormat := newOrderedMap()
|
||||
lang := s.p.Lang()
|
||||
|
||||
for _, key := range s.shortcodes.Keys() {
|
||||
shortcodePlaceholder := key.(string)
|
||||
// shortcodePlaceholder := s.shortcodes.getShortcode(key)
|
||||
|
||||
key := newScKeyFromLangAndOutputFormat(lang, f, shortcodePlaceholder)
|
||||
renderFn, found := s.contentShortcodes.Get(key)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue