From be01f8430ec009d5a375ea384aa4893683e8e499 Mon Sep 17 00:00:00 2001 From: bep Date: Sun, 19 Apr 2015 14:50:24 +0200 Subject: [PATCH] Add shortcut to Scratch from shortcode --- docs/content/extras/scratch.md | 1 - hugolib/shortcode.go | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/content/extras/scratch.md b/docs/content/extras/scratch.md index de591caae..e3c1d9f40 100644 --- a/docs/content/extras/scratch.md +++ b/docs/content/extras/scratch.md @@ -40,6 +40,5 @@ The usage is best illustrated with some samples: ``` **Note:** The examples above uses the special `$` variable, which refers to the top-level node. This is the behavior you most likely want, and will help remove some confusion when using `Scratch` inside page range loops -- and you start inadvertently calling the wrong `Scratch`. But there may be use cases for `{{ .Scratch.Add "key" "some value" }}`. -**Note:** To use `Scratch` in a `shortcode`, you will have to use the shortcode's Page's `Scratch`: `{{ .Page.Scratch.Add "a1" 12 }}` or `{{ $.Page.Scratch.Add "a1" 12 }}`. diff --git a/hugolib/shortcode.go b/hugolib/shortcode.go index 2429fd39d..74e10cd50 100644 --- a/hugolib/shortcode.go +++ b/hugolib/shortcode.go @@ -42,6 +42,10 @@ func (scp *ShortcodeWithPage) RelRef(ref string) (string, error) { return scp.Page.RelRef(ref) } +func (scp *ShortcodeWithPage) Scratch() *Scratch { + return scp.Page.Scratch() +} + func (scp *ShortcodeWithPage) Get(key interface{}) interface{} { if reflect.ValueOf(scp.Params).Len() == 0 { return nil