From deccc54004cbe88ddbf8f3f951d3178dc0693189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Mon, 17 Jul 2017 23:20:13 +0200 Subject: hubolib: Add HasShortcode Fixes #3707 --- hugolib/page.go | 11 +++++++++++ hugolib/site_output_test.go | 3 +++ 2 files changed, 14 insertions(+) (limited to 'hugolib') 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 -- cgit v1.2.3