diff options
author | Bjørn Erik Pedersen <[email protected]> | 2019-01-02 12:33:26 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2019-03-23 18:51:22 +0100 |
commit | 597e418cb02883418f2cebb41400e8e61413f651 (patch) | |
tree | 177ad9c540b2583b6dab138c9f0490d28989c7f7 /hugolib/hugo_sites_multihost_test.go | |
parent | 44f5c1c14cb1f42cc5f01739c289e9cfc83602af (diff) | |
download | hugo-597e418cb02883418f2cebb41400e8e61413f651.tar.gz hugo-597e418cb02883418f2cebb41400e8e61413f651.zip |
Make Page an interface
The main motivation of this commit is to add a `page.Page` interface to replace the very file-oriented `hugolib.Page` struct.
This is all a preparation step for issue #5074, "pages from other data sources".
But this also fixes a set of annoying limitations, especially related to custom output formats, and shortcodes.
Most notable changes:
* The inner content of shortcodes using the `{{%` as the outer-most delimiter will now be sent to the content renderer, e.g. Blackfriday.
This means that any markdown will partake in the global ToC and footnote context etc.
* The Custom Output formats are now "fully virtualized". This removes many of the current limitations.
* The taxonomy list type now has a reference to the `Page` object.
This improves the taxonomy template `.Title` situation and make common template constructs much simpler.
See #5074
Fixes #5763
Fixes #5758
Fixes #5090
Fixes #5204
Fixes #4695
Fixes #5607
Fixes #5707
Fixes #5719
Fixes #3113
Fixes #5706
Fixes #5767
Fixes #5723
Fixes #5769
Fixes #5770
Fixes #5771
Fixes #5759
Fixes #5776
Fixes #5777
Fixes #5778
Diffstat (limited to 'hugolib/hugo_sites_multihost_test.go')
-rw-r--r-- | hugolib/hugo_sites_multihost_test.go | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/hugolib/hugo_sites_multihost_test.go b/hugolib/hugo_sites_multihost_test.go index 83d6bfc9e..999d94559 100644 --- a/hugolib/hugo_sites_multihost_test.go +++ b/hugolib/hugo_sites_multihost_test.go @@ -3,6 +3,8 @@ package hugolib import ( "testing" + "github.com/gohugoio/hugo/resources/page" + "github.com/stretchr/testify/require" ) @@ -55,7 +57,7 @@ languageName = "Nynorsk" s1 := b.H.Sites[0] - s1h := s1.getPage(KindHome) + s1h := s1.getPage(page.KindHome) assert.True(s1h.IsTranslated()) assert.Len(s1h.Translations(), 2) assert.Equal("https://example.com/docs/", s1h.Permalink()) @@ -66,9 +68,8 @@ languageName = "Nynorsk" // For multihost, we never want any content in the root. // // check url in front matter: - pageWithURLInFrontMatter := s1.getPage(KindPage, "sect/doc3.en.md") + pageWithURLInFrontMatter := s1.getPage(page.KindPage, "sect/doc3.en.md") assert.NotNil(pageWithURLInFrontMatter) - assert.Equal("/superbob", pageWithURLInFrontMatter.URL()) assert.Equal("/docs/superbob/", pageWithURLInFrontMatter.RelPermalink()) b.AssertFileContent("public/en/superbob/index.html", "doc3|Hello|en") @@ -78,7 +79,7 @@ languageName = "Nynorsk" s2 := b.H.Sites[1] - s2h := s2.getPage(KindHome) + s2h := s2.getPage(page.KindHome) assert.Equal("https://example.fr/", s2h.Permalink()) b.AssertFileContent("public/fr/index.html", "French Home Page", "String Resource: /docs/text/pipes.txt") @@ -94,22 +95,19 @@ languageName = "Nynorsk" // Check bundles - bundleEn := s1.getPage(KindPage, "bundles/b1/index.en.md") + bundleEn := s1.getPage(page.KindPage, "bundles/b1/index.en.md") require.NotNil(t, bundleEn) require.Equal(t, "/docs/bundles/b1/", bundleEn.RelPermalink()) - require.Equal(t, 1, len(bundleEn.Resources)) - logoEn := bundleEn.Resources.GetMatch("logo*") - require.NotNil(t, logoEn) - require.Equal(t, "/docs/bundles/b1/logo.png", logoEn.RelPermalink()) + require.Equal(t, 1, len(bundleEn.Resources())) + b.AssertFileContent("public/en/bundles/b1/logo.png", "PNG Data") + b.AssertFileContent("public/en/bundles/b1/index.html", " image/png: /docs/bundles/b1/logo.png") - bundleFr := s2.getPage(KindPage, "bundles/b1/index.md") + bundleFr := s2.getPage(page.KindPage, "bundles/b1/index.md") require.NotNil(t, bundleFr) require.Equal(t, "/bundles/b1/", bundleFr.RelPermalink()) - require.Equal(t, 1, len(bundleFr.Resources)) - logoFr := bundleFr.Resources.GetMatch("logo*") - require.NotNil(t, logoFr) - require.Equal(t, "/bundles/b1/logo.png", logoFr.RelPermalink()) + require.Equal(t, 1, len(bundleFr.Resources())) b.AssertFileContent("public/fr/bundles/b1/logo.png", "PNG Data") + b.AssertFileContent("public/fr/bundles/b1/index.html", " image/png: /bundles/b1/logo.png") } |