summaryrefslogtreecommitdiffstats
path: root/hugolib/shortcode.go
diff options
context:
space:
mode:
authorCameron Moore <moorereason@gmail.com>2015-11-20 18:59:54 -0600
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2015-11-23 17:17:18 +0100
commitfde47c5eb9435083cc492b8648517b374eb60c6b (patch)
treec587a2f5a77a976b982cb64e7feee7674e401fcf /hugolib/shortcode.go
parent3d09de891072985e6c59f899f09132a76d44f7cd (diff)
Add shortcode IsNamedParams property
It would be helpful to know whether a shortcode was called with positional or named parameters. This commit adds a boolean `IsNamedParams` property to the `ShortcodeWithPage` struct.
Diffstat (limited to 'hugolib/shortcode.go')
-rw-r--r--hugolib/shortcode.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/hugolib/shortcode.go b/hugolib/shortcode.go
index a306023a7..0b2e9f78e 100644
--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -31,9 +31,10 @@ import (
)
type ShortcodeWithPage struct {
- Params interface{}
- Inner template.HTML
- Page *Page
+ Params interface{}
+ Inner template.HTML
+ Page *Page
+ IsNamedParams bool
}
func (scp *ShortcodeWithPage) Ref(ref string) (string, error) {
@@ -189,7 +190,6 @@ const innerCleanupRegexp = `\A<p>(.*)</p>\n\z`
const innerCleanupExpand = "$1"
func renderShortcode(sc shortcode, p *Page, t tpl.Template) string {
- var data = &ShortcodeWithPage{Params: sc.params, Page: p}
tmpl := getShortcodeTemplate(sc.name, t)
if tmpl == nil {
@@ -197,6 +197,11 @@ func renderShortcode(sc shortcode, p *Page, t tpl.Template) string {
return ""
}
+ data := &ShortcodeWithPage{Params: sc.params, Page: p}
+ if sc.params != nil {
+ data.IsNamedParams = reflect.TypeOf(sc.params).Kind() == reflect.Map
+ }
+
if len(sc.inner) > 0 {
var inner string
for _, innerData := range sc.inner {