shithub: hugo

Download patch

ref: be01f8430ec009d5a375ea384aa4893683e8e499
parent: bef25432d1a481359e3d00deaca79c8b3593bd63
author: bep <[email protected]>
date: Sun Apr 19 10:50:24 EDT 2015

Add shortcut to Scratch from shortcode

--- a/docs/content/extras/scratch.md
+++ b/docs/content/extras/scratch.md
@@ -40,6 +40,5 @@
 ```
 
 **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 }}`.
 
 
--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -42,6 +42,10 @@
 	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