diff --git a/tpl/tplimpl/embedded/templates/shortcodes/qr.html b/tpl/tplimpl/embedded/templates/shortcodes/qr.html index 818f6656d..05e8dbde9 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/qr.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/qr.html @@ -9,7 +9,7 @@ Encodes the given text into a QR code using the specified options and renders th @param {string} [class] The class attribute of the img element. @param {string} [id] The id attribute of the img element. @param {string} [title] The title attribute of the img element. -@param {string} [loading] The loading attribute of the img element, one of lazy, or eager. +@param {string} [loading] The loading attribute of the img element, one of lazy or eager. @returns {template.HTML} @@ -49,7 +49,6 @@ Encodes the given text into a QR code using the specified options and renders th {{- $title := or (.Get "title") "" }} {{- $loading := or (.Get "loading") "" }} - {{- /* Validate arguments. */}} {{- $errors := false}} {{- if not $text }} diff --git a/tpl/tplimpl/embedded/templates/shortcodes/twitter.html b/tpl/tplimpl/embedded/templates/shortcodes/twitter.html index 7a4adea5d..ce356559d 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/twitter.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/twitter.html @@ -1,5 +1,5 @@ {{- warnf "The \"twitter\", \"tweet\", and \"twitter_simple\" shortcodes were deprecated in v0.142.0 and will be removed in a future release. Please use the \"x\" shortcode instead." }} -{{- $pc := .Page.Site.Config.Privacy.Twitter -}} +{{- $pc := site.Config.Privacy.Twitter -}} {{- if not $pc.Disable -}} {{- if $pc.Simple -}} {{- template "_internal/shortcodes/twitter_simple.html" . -}} @@ -7,7 +7,7 @@ {{- $id := or (.Get "id") "" -}} {{- $user := or (.Get "user") "" -}} {{- if and $id $user -}} - {{- template "render-tweet" (dict "id" $id "user" $user "dnt" $pc.EnableDNT "name" .Name "position" .Position) -}} + {{- template "render-tweet" (dict "id" $id "user" $user "dnt" $pc.EnableDNT "ctx" .) -}} {{- else -}} {{- errorf "The %q shortcode requires two named parameters: user and id. See %s" .Name .Position -}} {{- end -}} @@ -24,7 +24,7 @@ {{- else with .Value -}} {{- (. | transform.Unmarshal).html | safeHTML -}} {{- else -}} - {{- warnidf "shortcode-twitter-getremote" "The %q shortcode was unable to retrieve the remote data. See %s" .name .position -}} + {{- warnidf "shortcode-twitter-getremote" "The %q shortcode was unable to retrieve the remote data. See %s" $.ctx.Name $.ctx.Position -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/tpl/tplimpl/embedded/templates/shortcodes/twitter_simple.html b/tpl/tplimpl/embedded/templates/shortcodes/twitter_simple.html index 7251f64e3..e9dcc76ba 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/twitter_simple.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/twitter_simple.html @@ -23,7 +23,7 @@ {{- end }} {{- (. | transform.Unmarshal).html | safeHTML -}} {{- else -}} - {{- warnidf "shortcode-twitter-simple-getremote" "The %q shortcode was unable to retrieve the remote data. See %s" .ctx.Name .ctx.Position -}} + {{- warnidf "shortcode-twitter-simple-getremote" "The %q shortcode was unable to retrieve the remote data. See %s" $.ctx.Name $.ctx.Position -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/tpl/tplimpl/embedded/templates/shortcodes/vimeo.html b/tpl/tplimpl/embedded/templates/shortcodes/vimeo.html index 8ddad9b43..b3fc781a3 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/vimeo.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/vimeo.html @@ -1,4 +1,4 @@ -{{- $pc := .Page.Site.Config.Privacy.Vimeo -}} +{{- $pc := site.Config.Privacy.Vimeo -}} {{- if not $pc.Disable -}} {{- if $pc.Simple -}} {{ template "_internal/shortcodes/vimeo_simple.html" . }} @@ -11,4 +11,4 @@ {{ end }} {{- end -}} -{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html b/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html index 7f7940b80..11f19b1f6 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html @@ -1,6 +1,6 @@ -{{- $pc := .Page.Site.Config.Privacy.Vimeo -}} +{{- $pc := site.Config.Privacy.Vimeo -}} {{- if not $pc.Disable -}} - {{- $ctx := dict "page" .Page "pc" $pc "name" .Name "position" .Position }} + {{- $ctx := dict "ctx" . }} {{- if .IsNamedParams -}} {{- with .Get "id" -}} {{- $ctx = merge $ctx (dict "id" . "class" ($.Get "class")) -}} @@ -19,7 +19,7 @@ {{- end -}} {{- define "render-vimeo" -}} - {{- $dnt := cond .pc.EnableDNT 1 0 -}} + {{- $dnt := cond site.Config.Privacy.Vimeo.EnableDNT 1 0 -}} {{- $url := urls.JoinPath "https://vimeo.com" .id -}} {{- $query := querify "url" $url "dnt" $dnt -}} {{- $request := printf "https://vimeo.com/api/oembed.json?%s" $query -}} @@ -32,7 +32,7 @@ {{- with $.class -}} {{- $class = printf "%s %s" "s_video_simple" . -}} {{- else -}} - {{ template "__h_simple_css" $.page }} + {{ template "__h_simple_css" $.ctx.Page }} {{- end -}} {{- $thumbnail := .thumbnail_url -}} {{- $original := $thumbnail | replaceRE "(_.*\\.)" "." -}} @@ -40,13 +40,13 @@ {{ .title }}
- {{ template "__h_simple_icon_play" $.page }} + {{ template "__h_simple_icon_play" $.ctx.Page }}
{{- end -}} {{- else -}} - {{- warnidf "shortcode-vimeo-simple" "The %q shortcode was unable to retrieve the remote data. See %s" .name .position -}} + {{- warnidf "shortcode-vimeo-simple" "The %q shortcode was unable to retrieve the remote data. See %s" $.ctx.Name $.ctx.Position -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/tpl/tplimpl/embedded/templates/shortcodes/x.html b/tpl/tplimpl/embedded/templates/shortcodes/x.html index 78c0ac08b..28a5e331b 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/x.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/x.html @@ -1,4 +1,4 @@ -{{- $pc := .Page.Site.Config.Privacy.X -}} +{{- $pc := site.Config.Privacy.X -}} {{- if not $pc.Disable -}} {{- if $pc.Simple -}} {{- template "_internal/shortcodes/x_simple.html" . -}} @@ -6,7 +6,7 @@ {{- $id := or (.Get "id") "" -}} {{- $user := or (.Get "user") "" -}} {{- if and $id $user -}} - {{- template "render-x" (dict "id" $id "user" $user "dnt" $pc.EnableDNT "name" .Name "position" .Position) -}} + {{- template "render-x" (dict "id" $id "user" $user "dnt" $pc.EnableDNT "ctx" .) -}} {{- else -}} {{- errorf "The %q shortcode requires two named parameters: user and id. See %s" .Name .Position -}} {{- end -}} @@ -23,7 +23,7 @@ {{- else with .Value -}} {{- (. | transform.Unmarshal).html | safeHTML -}} {{- else -}} - {{- warnidf "shortcode-x-getremote" "The %q shortcode was unable to retrieve the remote data. See %s" .name .position -}} + {{- warnidf "shortcode-x-getremote" "The %q shortcode was unable to retrieve the remote data. See %s" $.ctx.Name $.ctx.Position -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/tpl/tplimpl/embedded/templates/shortcodes/x_simple.html b/tpl/tplimpl/embedded/templates/shortcodes/x_simple.html index 661ed7756..be7830668 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/x_simple.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/x_simple.html @@ -22,7 +22,7 @@ {{- end }} {{- (. | transform.Unmarshal).html | safeHTML -}} {{- else -}} - {{- warnidf "shortcode-x-simple-getremote" "The %q shortcode was unable to retrieve the remote data. See %s" .ctx.Name .ctx.Position -}} + {{- warnidf "shortcode-x-simple-getremote" "The %q shortcode was unable to retrieve the remote data. See %s" $.ctx.Name $.ctx.Position -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/tpl/tplimpl/shortcodes_integration_test.go b/tpl/tplimpl/shortcodes_integration_test.go new file mode 100644 index 000000000..d9c540cd9 --- /dev/null +++ b/tpl/tplimpl/shortcodes_integration_test.go @@ -0,0 +1,330 @@ +// Copyright 2025 The Hugo Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tplimpl_test + +import ( + "strings" + "testing" + + "github.com/gohugoio/hugo/htesting/hqt" + "github.com/gohugoio/hugo/hugolib" +) + +func TestCommentShortcode(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +disableKinds = ['page','rss','section','sitemap','taxonomy','term'] +-- layouts/index.html -- +{{ .Content }} +-- content/_index.md -- +a{{< comment >}}b{{< /comment >}}c +` + + b := hugolib.Test(t, files) + b.AssertFileContent("public/index.html", "

ac

") +} + +func TestDetailsShortcode(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +disableKinds = ['page','rss','section','sitemap','taxonomy','term'] +-- layouts/index.html -- +{{ .Content }} +-- content/_index.md -- +--- +title: home +--- +{{< details >}} +A: An _emphasized_ word. +{{< /details >}} + +{{< details + class="my-class" + name="my-name" + open=true + summary="A **bold** word" + title="my-title" +>}} +B: An _emphasized_ word. +{{< /details >}} + +{{< details open=false >}} +C: An _emphasized_ word. +{{< /details >}} + +{{< details open="false" >}} +D: An _emphasized_ word. +{{< /details >}} + +{{< details open=0 >}} +E: An _emphasized_ word. +{{< /details >}} +` + b := hugolib.Test(t, files) + + b.AssertFileContent("public/index.html", + "
\n Details\n

A: An emphasized word.

\n
", + "
\n A bold word\n

B: An emphasized word.

\n
", + "
\n Details\n

C: An emphasized word.

\n
", + "
\n Details\n

D: An emphasized word.

\n
", + "
\n Details\n

D: An emphasized word.

\n
", + ) +} + +func TestInstagramShortcode(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +disableKinds = ['page','rss','section','sitemap','taxonomy','term'] +privacy.instagram.simple = false +-- content/_index.md -- +--- +title: home +--- +{{< instagram CxOWiQNP2MO >}} +-- layouts/index.html -- +Hash: {{ .Content | hash.XxHash }} +Content: {{ .Content }} +` + + // Regular mode + b := hugolib.Test(t, files) + b.AssertFileContent("public/index.html", "a7937c49665872d3") + + // Simple mode + files = strings.ReplaceAll(files, "privacy.instagram.simple = false", "privacy.instagram.simple = true") + b = hugolib.Test(t, files) + b.AssertFileContent("public/index.html", "2c1dce3881be0513") +} + +func TestQRShortcode(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +disableKinds = ['page','rss','section','sitemap','taxonomy','term'] +-- layouts/index.html -- +{{ .Content }} +-- content/_index.md -- +--- +title: home +--- +{{< qr + text="https://gohugo.io" + level="high" + scale=4 + targetDir="codes" + alt="QR code linking to https://gohugo.io" + class="my-class" + id="my-id" + title="My Title" +/>}} + +{{< qr >}} +https://gohugo.io" +{{< /qr >}} +` + + b := hugolib.Test(t, files) + + b.AssertFileContent("public/index.html", + `QR code linking to https://gohugo.io`, + ``, + ) +} + +func TestVimeoShortcode(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +disableKinds = ['page','rss','section','sitemap','taxonomy','term'] +privacy.vimeo.simple = false +-- content/_index.md -- +--- +title: home +--- +{{< vimeo 55073825 >}} +-- layouts/index.html -- +Hash: {{ .Content | hash.XxHash }} +Content: {{ .Content }} +` + + // Regular mode + b := hugolib.Test(t, files) + b.AssertFileContent("public/index.html", "d5b2a079cc37d0ed") + + // Simple mode + files = strings.ReplaceAll(files, "privacy.vimeo.simple = false", "privacy.vimeo.simple = true") + b = hugolib.Test(t, files) + b.AssertFileContent("public/index.html", "73b8767ce8bdf694") + + // Simple mode with non-existent id + files = strings.ReplaceAll(files, "{{< vimeo 55073825 >}}", "{{< vimeo __id_does_not_exist__ >}}") + b = hugolib.Test(t, files, hugolib.TestOptWarn()) + b.AssertLogContains(`WARN The "vimeo" shortcode was unable to retrieve the remote data.`) +} + +// Issue 13214 +// We deprecated the twitter, tweet (alias of twitter), and twitter_simple +// shortcodes in v0.141.0, replacing them with x and x_simple. +func TestXShortcodes(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +disableKinds = ['home','rss','section','sitemap','taxonomy','term'] +#CONFIG +-- content/p1.md -- +--- +title: p1 +--- +{{< x user="SanDiegoZoo" id="1453110110599868418" >}} +-- content/p2.md -- +--- +title: p2 +--- +{{< twitter user="SanDiegoZoo" id="1453110110599868418" >}} +-- content/p3.md -- +--- +title: p3 +--- +{{< tweet user="SanDiegoZoo" id="1453110110599868418" >}} +-- content/p4.md -- +--- +title: p4 +--- +{{< x_simple user="SanDiegoZoo" id="1453110110599868418" >}} +-- content/p5.md -- +--- +title: p5 +--- +{{< twitter_simple user="SanDiegoZoo" id="1453110110599868418" >}} +-- layouts/_default/single.html -- +{{ .Content | strings.TrimSpace | safeHTML }} +-- +` + + b := hugolib.Test(t, files) + + // Test x, twitter, and tweet shortcodes + want := `

Owl bet you'll lose this staring contest 🦉 pic.twitter.com/eJh4f2zncC

— San Diego Zoo Wildlife Alliance (@sandiegozoo) October 26, 2021
+ ` + b.AssertFileContent("public/p1/index.html", want) + + htmlFiles := []string{ + b.FileContent("public/p1/index.html"), + b.FileContent("public/p2/index.html"), + b.FileContent("public/p3/index.html"), + } + + b.Assert(htmlFiles, hqt.IsAllElementsEqual) + + // Test x_simple and twitter_simple shortcodes + wantSimple := "

Owl bet you'll lose this staring contest 🦉 pic.twitter.com/eJh4f2zncC

— San Diego Zoo Wildlife Alliance (@sandiegozoo) October 26, 2021
\n--" + b.AssertFileContent("public/p4/index.html", wantSimple) + + htmlFiles = []string{ + b.FileContent("public/p4/index.html"), + b.FileContent("public/p5/index.html"), + } + b.Assert(htmlFiles, hqt.IsAllElementsEqual) + + filesOriginal := files + + // Test privacy.twitter.simple + files = strings.ReplaceAll(filesOriginal, "#CONFIG", "privacy.twitter.simple=true") + b = hugolib.Test(t, files) + htmlFiles = []string{ + b.FileContent("public/p2/index.html"), + b.FileContent("public/p3/index.html"), + b.FileContent("public/p5/index.html"), + } + b.Assert(htmlFiles, hqt.IsAllElementsEqual) + + // Test privacy.x.simple + files = strings.ReplaceAll(filesOriginal, "#CONFIG", "privacy.x.simple=true") + b = hugolib.Test(t, files) + htmlFiles = []string{ + b.FileContent("public/p1/index.html"), + b.FileContent("public/p4/index.html"), + b.FileContent("public/p4/index.html"), + } + b.Assert(htmlFiles, hqt.IsAllElementsEqual) + + htmlFiles = []string{ + b.FileContent("public/p2/index.html"), + b.FileContent("public/p3/index.html"), + } + b.Assert(htmlFiles, hqt.IsAllElementsEqual) + + // Test privacy.twitter.disable + files = strings.ReplaceAll(filesOriginal, "#CONFIG", "privacy.twitter.disable = true") + b = hugolib.Test(t, files) + b.AssertFileContent("public/p1/index.html", "") + htmlFiles = []string{ + b.FileContent("public/p1/index.html"), + b.FileContent("public/p2/index.html"), + b.FileContent("public/p3/index.html"), + b.FileContent("public/p4/index.html"), + b.FileContent("public/p4/index.html"), + } + b.Assert(htmlFiles, hqt.IsAllElementsEqual) + + // Test privacy.x.disable + files = strings.ReplaceAll(filesOriginal, "#CONFIG", "privacy.x.disable = true") + b = hugolib.Test(t, files) + b.AssertFileContent("public/p1/index.html", "") + htmlFiles = []string{ + b.FileContent("public/p1/index.html"), + b.FileContent("public/p4/index.html"), + } + b.Assert(htmlFiles, hqt.IsAllElementsEqual) + + htmlFiles = []string{ + b.FileContent("public/p2/index.html"), + b.FileContent("public/p3/index.html"), + } + b.Assert(htmlFiles, hqt.IsAllElementsEqual) + + // Test warnings + files = ` +-- hugo.toml -- +disableKinds = ['page','rss','section','sitemap','taxonomy','term'] +-- content/_index.md -- +--- +title: home +--- +{{< x user="__user_does_not_exist__" id="__id_does_not_exist__" >}} +{{< x_simple user="__user_does_not_exist__" id="__id_does_not_exist__" >}} +{{< twitter user="__user_does_not_exist__" id="__id_does_not_exist__" >}} +{{< twitter_simple user="__user_does_not_exist__" id="__id_does_not_exist__" >}} +-- layouts/index.html -- +{{ .Content }} +` + + b = hugolib.Test(t, files, hugolib.TestOptWarn()) + b.AssertLogContains( + `WARN The "x" shortcode was unable to retrieve the remote data.`, + `WARN The "x_simple" shortcode was unable to retrieve the remote data.`, + `WARN The "twitter", "tweet", and "twitter_simple" shortcodes were deprecated in v0.142.0 and will be removed in a future release.`, + `WARN The "twitter" shortcode was unable to retrieve the remote data.`, + `WARN The "twitter_simple" shortcode was unable to retrieve the remote data.`, + ) +} diff --git a/tpl/tplimpl/tplimpl_integration_test.go b/tpl/tplimpl/tplimpl_integration_test.go index d1e214ce2..9b30466e8 100644 --- a/tpl/tplimpl/tplimpl_integration_test.go +++ b/tpl/tplimpl/tplimpl_integration_test.go @@ -6,7 +6,6 @@ import ( "testing" qt "github.com/frankban/quicktest" - "github.com/gohugoio/hugo/htesting/hqt" "github.com/gohugoio/hugo/hugolib" "github.com/gohugoio/hugo/tpl" ) @@ -586,71 +585,6 @@ title: p5 ) } -func TestCommentShortcode(t *testing.T) { - t.Parallel() - - files := ` --- hugo.toml -- -disableKinds = ['page','rss','section','sitemap','taxonomy','term'] --- layouts/index.html -- -{{ .Content }} --- content/_index.md -- -a{{< comment >}}b{{< /comment >}}c -` - - b := hugolib.Test(t, files) - b.AssertFileContent("public/index.html", "

ac

") -} - -func TestDetailsShortcode(t *testing.T) { - t.Parallel() - - files := ` --- hugo.toml -- -disableKinds = ['page','rss','section','sitemap','taxonomy','term'] --- layouts/index.html -- -{{ .Content }} --- content/_index.md -- ---- -title: home ---- -{{< details >}} -A: An _emphasized_ word. -{{< /details >}} - -{{< details - class="my-class" - name="my-name" - open=true - summary="A **bold** word" - title="my-title" ->}} -B: An _emphasized_ word. -{{< /details >}} - -{{< details open=false >}} -C: An _emphasized_ word. -{{< /details >}} - -{{< details open="false" >}} -D: An _emphasized_ word. -{{< /details >}} - -{{< details open=0 >}} -E: An _emphasized_ word. -{{< /details >}} -` - b := hugolib.Test(t, files) - - b.AssertFileContent("public/index.html", - "
\n Details\n

A: An emphasized word.

\n
", - "
\n A bold word\n

B: An emphasized word.

\n
", - "
\n Details\n

C: An emphasized word.

\n
", - "
\n Details\n

D: An emphasized word.

\n
", - "
\n Details\n

D: An emphasized word.

\n
", - ) -} - // Issue 12963 func TestEditBaseofParseAfterExecute(t *testing.T) { files := ` @@ -699,162 +633,3 @@ Home! b.BuildPartial("/mybundle1/") b.AssertFileContent("public/mybundle1/index.html", "Baseof!!") } - -func TestQRShortcode(t *testing.T) { - t.Parallel() - - files := ` --- hugo.toml -- -disableKinds = ['page','rss','section','sitemap','taxonomy','term'] --- layouts/index.html -- -{{ .Content }} --- content/_index.md -- ---- -title: home ---- -{{< qr - text="https://gohugo.io" - level="high" - scale=4 - targetDir="codes" - alt="QR code linking to https://gohugo.io" - class="my-class" - id="my-id" - title="My Title" -/>}} - -{{< qr >}} -https://gohugo.io" -{{< /qr >}} -` - - b := hugolib.Test(t, files) - - b.AssertFileContent("public/index.html", - `QR code linking to https://gohugo.io`, - ``, - ) -} - -// Issue 13214 -// We deprecated the twitter, tweet (alias of twitter), and twitter_simple -// shortcodes in v0.141.0, replacing them with x and x_simple. -func TestXShortcodes(t *testing.T) { - t.Parallel() - - files := ` --- hugo.toml -- -disableKinds = ['home','rss','section','sitemap','taxonomy','term'] -#CONFIG --- content/p1.md -- ---- -title: p1 ---- -{{< x user="SanDiegoZoo" id="1453110110599868418" >}} --- content/p2.md -- ---- -title: p2 ---- -{{< twitter user="SanDiegoZoo" id="1453110110599868418" >}} --- content/p3.md -- ---- -title: p3 ---- -{{< tweet user="SanDiegoZoo" id="1453110110599868418" >}} --- content/p4.md -- ---- -title: p4 ---- -{{< x_simple user="SanDiegoZoo" id="1453110110599868418" >}} --- content/p5.md -- ---- -title: p5 ---- -{{< twitter_simple user="SanDiegoZoo" id="1453110110599868418" >}} --- layouts/_default/single.html -- -{{ .Content | strings.TrimSpace | safeHTML }} --- -` - - b := hugolib.Test(t, files) - - // Test x, twitter, and tweet shortcodes - want := `

Owl bet you'll lose this staring contest 🦉 pic.twitter.com/eJh4f2zncC

— San Diego Zoo Wildlife Alliance (@sandiegozoo) October 26, 2021
- ` - b.AssertFileContent("public/p1/index.html", want) - - htmlFiles := []string{ - b.FileContent("public/p1/index.html"), - b.FileContent("public/p2/index.html"), - b.FileContent("public/p3/index.html"), - } - - b.Assert(htmlFiles, hqt.IsAllElementsEqual) - - // Test x_simple and twitter_simple shortcodes - wantSimple := "

Owl bet you'll lose this staring contest 🦉 pic.twitter.com/eJh4f2zncC

— San Diego Zoo Wildlife Alliance (@sandiegozoo) October 26, 2021
\n--" - b.AssertFileContent("public/p4/index.html", wantSimple) - - htmlFiles = []string{ - b.FileContent("public/p4/index.html"), - b.FileContent("public/p5/index.html"), - } - b.Assert(htmlFiles, hqt.IsAllElementsEqual) - - filesOriginal := files - - // Test privacy.twitter.simple - files = strings.ReplaceAll(filesOriginal, "#CONFIG", "privacy.twitter.simple=true") - b = hugolib.Test(t, files) - htmlFiles = []string{ - b.FileContent("public/p2/index.html"), - b.FileContent("public/p3/index.html"), - b.FileContent("public/p5/index.html"), - } - b.Assert(htmlFiles, hqt.IsAllElementsEqual) - - // Test privacy.x.simple - files = strings.ReplaceAll(filesOriginal, "#CONFIG", "privacy.x.simple=true") - b = hugolib.Test(t, files) - htmlFiles = []string{ - b.FileContent("public/p1/index.html"), - b.FileContent("public/p4/index.html"), - b.FileContent("public/p4/index.html"), - } - b.Assert(htmlFiles, hqt.IsAllElementsEqual) - - htmlFiles = []string{ - b.FileContent("public/p2/index.html"), - b.FileContent("public/p3/index.html"), - } - b.Assert(htmlFiles, hqt.IsAllElementsEqual) - - // Test privacy.twitter.disable - files = strings.ReplaceAll(filesOriginal, "#CONFIG", "privacy.twitter.disable = true") - b = hugolib.Test(t, files) - b.AssertFileContent("public/p1/index.html", "") - htmlFiles = []string{ - b.FileContent("public/p1/index.html"), - b.FileContent("public/p2/index.html"), - b.FileContent("public/p3/index.html"), - b.FileContent("public/p4/index.html"), - b.FileContent("public/p4/index.html"), - } - b.Assert(htmlFiles, hqt.IsAllElementsEqual) - - // Test privacy.x.disable - files = strings.ReplaceAll(filesOriginal, "#CONFIG", "privacy.x.disable = true") - b = hugolib.Test(t, files) - b.AssertFileContent("public/p1/index.html", "") - htmlFiles = []string{ - b.FileContent("public/p1/index.html"), - b.FileContent("public/p4/index.html"), - } - b.Assert(htmlFiles, hqt.IsAllElementsEqual) - - htmlFiles = []string{ - b.FileContent("public/p2/index.html"), - b.FileContent("public/p3/index.html"), - } - b.Assert(htmlFiles, hqt.IsAllElementsEqual) -}