summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hugolib/embedded_shortcodes_test.go24
-rw-r--r--hugolib/site.go11
2 files changed, 15 insertions, 20 deletions
diff --git a/hugolib/embedded_shortcodes_test.go b/hugolib/embedded_shortcodes_test.go
index cebef0b8b..7dda21d41 100644
--- a/hugolib/embedded_shortcodes_test.go
+++ b/hugolib/embedded_shortcodes_test.go
@@ -19,11 +19,13 @@ import (
"os"
"path/filepath"
"regexp"
+ "strings"
"testing"
"github.com/spf13/hugo/helpers"
"github.com/spf13/hugo/tpl"
"github.com/spf13/viper"
+ "github.com/stretchr/testify/require"
)
const (
@@ -37,6 +39,9 @@ func TestShortcodeCrossrefs(t *testing.T) {
}
func doTestShortcodeCrossrefs(t *testing.T, relative bool) {
+ testCommonResetState()
+ viper.Set("baseURL", baseURL)
+
var refShortcode string
var expectedBase string
@@ -50,21 +55,20 @@ func doTestShortcodeCrossrefs(t *testing.T, relative bool) {
path := filepath.FromSlash("blog/post.md")
in := fmt.Sprintf(`{{< %s "%s" >}}`, refShortcode, path)
+
+ writeSource(t, "content/"+path, simplePageWithURL+": "+in)
+
expected := fmt.Sprintf(`%s/simple/url/`, expectedBase)
- templ := tpl.New()
- p, _ := pageFromString(simplePageWithURL, path)
- p.Node.Site = newSiteInfoDefaultLanguage(
- helpers.SanitizeURLKeepTrailingSlash(baseURL),
- p)
+ sites, err := newHugoSitesDefaultLanguage()
+ require.NoError(t, err)
- output, err := HandleShortcodes(in, p, templ)
+ require.NoError(t, sites.Build(BuildCfg{}))
+ require.Len(t, sites.Sites[0].Pages, 1)
- if err != nil {
- t.Fatal("Handle shortcode error", err)
- }
+ output := string(sites.Sites[0].Pages[0].Content)
- if output != expected {
+ if !strings.Contains(output, expected) {
t.Errorf("Got\n%q\nExpected\n%q", output, expected)
}
}
diff --git a/hugolib/site.go b/hugolib/site.go
index cfbe75f70..8ae3cd16f 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -247,16 +247,7 @@ func (s *SiteInfo) refLink(ref string, page *Page, relative bool) (string, error
var link string
if refURL.Path != "" {
- // We may be in a shortcode and a not finished site, so look it the
- // "raw page" collection.
- // This works, but it also means AllPages and Pages will be empty for other
- // shortcode use, which may be a slap in the face for many.
- // TODO(bep) ml move shortcode handling to a "pre-render" handler, which also
- // will fix a few other problems.
- for _, page := range []*Page(*s.rawAllPages) {
- if !page.shouldBuild() {
- continue
- }
+ for _, page := range []*Page(*s.AllPages) {
refPath := filepath.FromSlash(refURL.Path)
if page.Source.Path() == refPath || page.Source.LogicalName() == refPath {
target = page