hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit deccc54004cbe88ddbf8f3f951d3178dc0693189
parent 00b590d7ab4f3021814acceaf74c4eaf64edb226
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Mon, 17 Jul 2017 23:20:13 +0200

hubolib: Add HasShortcode

Fixes #3707

Diffstat:
Mhugolib/page.go | 11+++++++++++
Mhugolib/site_output_test.go | 3+++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git 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
@@ -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