Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-11-27 15:42:36 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-12-18 13:44:40 +0300
commite625088ef5a970388ad50e464e87db56b358dac4 (patch)
treef7b26dec1f3695411558d05ca7d0995817a42250 /hugolib/page__meta.go
parent67f3aa72cf9aaf3d6e447fa6bc12de704d46adf7 (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.go36
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.