From: Bjørn Erik Pedersen Date: Mon, 17 Jul 2017 21:20:13 +0000 (+0200) Subject: hubolib: Add HasShortcode X-Git-Tag: v0.26~43 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=deccc54004cbe88ddbf8f3f951d3178dc0693189;p=brevno-suite%2Fhugo hubolib: Add HasShortcode Fixes #3707 --- diff --git a/hugolib/page.go b/hugolib/page.go index 0f44b8b9..9937be32 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 8455a13f..941387e3 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