diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-11-27 15:42:36 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-12-18 13:44:40 +0300 |
commit | e625088ef5a970388ad50e464e87db56b358dac4 (patch) | |
tree | f7b26dec1f3695411558d05ca7d0995817a42250 /hugolib/page__meta.go | |
parent | 67f3aa72cf9aaf3d6e447fa6bc12de704d46adf7 (diff) |
Add render template hooks for links and images
This commit also
* revises the change detection for templates used by content files in server mode.
* Adds a Page.RenderString method
Fixes #6545
Fixes #4663
Closes #6043
Diffstat (limited to 'hugolib/page__meta.go')
-rw-r--r-- | hugolib/page__meta.go | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/hugolib/page__meta.go b/hugolib/page__meta.go index 1fc69c218..9f3e1687a 100644 --- a/hugolib/page__meta.go +++ b/hugolib/page__meta.go @@ -592,7 +592,7 @@ func (pm *pageMeta) setMetadata(bucket *pagesMapBucket, p *pageState, frontmatte return nil } -func (p *pageMeta) applyDefaultValues() error { +func (p *pageMeta) applyDefaultValues(ps *pageState) error { if p.markup == "" { if !p.File().IsZero() { // Fall back to file extension @@ -651,25 +651,37 @@ func (p *pageMeta) applyDefaultValues() error { markup = "markdown" } - cp := p.s.ContentSpec.Converters.Get(markup) - if cp == nil { - return errors.Errorf("no content renderer found for markup %q", p.markup) + cp, err := p.newContentConverter(ps, markup, renderingConfigOverrides) + if err != nil { + return err } + p.contentConverter = cp + } + + return nil + +} + +func (p *pageMeta) newContentConverter(ps *pageState, markup string, renderingConfigOverrides map[string]interface{}) (converter.Converter, error) { + cp := p.s.ContentSpec.Converters.Get(markup) + if cp == nil { + return nil, errors.Errorf("no content renderer found for markup %q", p.markup) + } - cpp, err := cp.New(converter.DocumentContext{ + cpp, err := cp.New( + converter.DocumentContext{ + Document: newPageForRenderHook(ps), DocumentID: p.f.UniqueID(), DocumentName: p.f.Path(), ConfigOverrides: renderingConfigOverrides, - }) + }, + ) - if err != nil { - return err - } - p.contentConverter = cpp + if err != nil { + return nil, err } - return nil - + return cpp, nil } // The output formats this page will be rendered to. |