summaryrefslogtreecommitdiffstats
path: root/hugolib
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-07-17 23:20:13 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-07-17 23:20:13 +0200
commitdeccc54004cbe88ddbf8f3f951d3178dc0693189 (patch)
treeb2f0ee2079cd5cb731bb540dc3bf526f3f4e5a94 /hugolib
parent00b590d7ab4f3021814acceaf74c4eaf64edb226 (diff)
hubolib: Add HasShortcode
Fixes #3707
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/page.go11
-rw-r--r--hugolib/site_output_test.go3
2 files changed, 14 insertions, 0 deletions
diff --git a/hugolib/page.go b/hugolib/page.go
index 0f44b8b99..9937be325 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -791,6 +791,17 @@ func (p *Page) Extension() string {
return p.extension
}
+// HasShortcode return whether the page has a shortcode with the given name.
+// This method is mainly motivated with the Hugo Docs site's need for a list
+// of pages with the `todo` shortcode in it.
+func (p *Page) HasShortcode(name string) bool {
+ if p.shortcodeState == nil {
+ return false
+ }
+
+ return p.shortcodeState.nameSet[name]
+}
+
// AllTranslations returns all translations, including the current Page.
func (p *Page) AllTranslations() Pages {
return p.translations
diff --git a/hugolib/site_output_test.go b/hugolib/site_output_test.go
index 8455a13f7..941387e35 100644
--- a/hugolib/site_output_test.go
+++ b/hugolib/site_output_test.go
@@ -254,6 +254,9 @@ Content: {{ .Content }}
require.Equal(t, "webcal://example.com/blog/index.ics", cal.Permalink())
}
+ require.True(t, home.HasShortcode("myShort"))
+ require.False(t, home.HasShortcode("doesNotExist"))
+
}
// Issue #3447