diff options
-rw-r--r-- | config/privacy/privacyConfig.go | 4 | ||||
-rw-r--r-- | config/privacy/privacyConfig_test.go | 3 | ||||
-rw-r--r-- | docs/content/en/about/hugo-and-gdpr.md | 4 | ||||
-rw-r--r-- | resources/page/page_marshaljson.autogen.go | 4 | ||||
-rw-r--r-- | tpl/tplimpl/embedded/templates.autogen.go | 17 | ||||
-rw-r--r-- | tpl/tplimpl/embedded/templates/shortcodes/vimeo.html | 8 | ||||
-rw-r--r-- | tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html | 6 |
7 files changed, 33 insertions, 13 deletions
diff --git a/config/privacy/privacyConfig.go b/config/privacy/privacyConfig.go index ea34563eb..a36046364 100644 --- a/config/privacy/privacyConfig.go +++ b/config/privacy/privacyConfig.go @@ -80,6 +80,10 @@ type Twitter struct { type Vimeo struct { Service `mapstructure:",squash"` + // When set to true, the Vimeo player will be blocked from tracking any session data, + // including all cookies and stats. + EnableDNT bool + // If simple mode is enabled, only a thumbnail is fetched from i.vimeocdn.com and // shown with a play button overlaid. If a user clicks the button, he/she will // be taken to the video page on vimeo.com in a new browser tab. diff --git a/config/privacy/privacyConfig_test.go b/config/privacy/privacyConfig_test.go index d798721e1..a750ba282 100644 --- a/config/privacy/privacyConfig_test.go +++ b/config/privacy/privacyConfig_test.go @@ -45,6 +45,7 @@ enableDNT = true simple = true [privacy.vimeo] disable = true +enableDNT = true simple = true [privacy.youtube] disable = true @@ -63,7 +64,7 @@ simple = true pc.GoogleAnalytics.RespectDoNotTrack, pc.GoogleAnalytics.AnonymizeIP, pc.GoogleAnalytics.UseSessionStorage, pc.Instagram.Disable, pc.Instagram.Simple, pc.Twitter.Disable, pc.Twitter.EnableDNT, - pc.Twitter.Simple, pc.Vimeo.Disable, pc.Vimeo.Simple, + pc.Twitter.Simple, pc.Vimeo.Disable, pc.Vimeo.EnableDNT, pc.Vimeo.Simple, pc.YouTube.PrivacyEnhanced, pc.YouTube.Disable, } diff --git a/docs/content/en/about/hugo-and-gdpr.md b/docs/content/en/about/hugo-and-gdpr.md index 7c1c9bed4..df0234a3b 100644 --- a/docs/content/en/about/hugo-and-gdpr.md +++ b/docs/content/en/about/hugo-and-gdpr.md @@ -51,6 +51,7 @@ enableDNT = false simple = false [privacy.vimeo] disable = false +enableDNT = false simple = false [privacy.youtube] disable = false @@ -128,6 +129,9 @@ privacyEnhanced ### Vimeo +enableDNT +: Enabling this for the vimeo shortcode, the Vimeo player will be blocked from tracking any session data, including all cookies and stats. + simple : If simple mode is enabled, the video thumbnail is fetched from Vimeo's servers and it is overlayed with a play button. If the user clicks to play the video, it will open in a new tab directly on Vimeo's website. diff --git a/resources/page/page_marshaljson.autogen.go b/resources/page/page_marshaljson.autogen.go index c01dceeaf..2286f1e63 100644 --- a/resources/page/page_marshaljson.autogen.go +++ b/resources/page/page_marshaljson.autogen.go @@ -21,6 +21,7 @@ import ( "github.com/gohugoio/hugo/common/maps" "github.com/gohugoio/hugo/config" "github.com/gohugoio/hugo/hugofs/files" + "github.com/gohugoio/hugo/identity" "github.com/gohugoio/hugo/langs" "github.com/gohugoio/hugo/media" "github.com/gohugoio/hugo/navigation" @@ -87,6 +88,7 @@ func MarshalPageToJSON(p Page) ([]byte, error) { isTranslated := p.IsTranslated() allTranslations := p.AllTranslations() translations := p.Translations() + getIdentity := p.GetIdentity() s := struct { Content interface{} @@ -143,6 +145,7 @@ func MarshalPageToJSON(p Page) ([]byte, error) { IsTranslated bool AllTranslations Pages Translations Pages + GetIdentity identity.Identity }{ Content: content, Plain: plain, @@ -198,6 +201,7 @@ func MarshalPageToJSON(p Page) ([]byte, error) { IsTranslated: isTranslated, AllTranslations: allTranslations, Translations: translations, + GetIdentity: getIdentity, } return json.Marshal(&s) diff --git a/tpl/tplimpl/embedded/templates.autogen.go b/tpl/tplimpl/embedded/templates.autogen.go index 6a6844933..ccdc9197b 100644 --- a/tpl/tplimpl/embedded/templates.autogen.go +++ b/tpl/tplimpl/embedded/templates.autogen.go @@ -496,16 +496,19 @@ if (!doNotTrack) { {{ template "_internal/shortcodes/vimeo_simple.html" . }} {{- else -}} {{ if .IsNamedParams }}<div {{ if .Get "class" }}class="{{ .Get "class" }}"{{ else }}style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"{{ end }}> - <iframe src="https://player.vimeo.com/video/{{ .Get "id" }}" {{ if not (.Get "class") }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}{{ if .Get "title"}}title="{{ .Get "title" }}"{{ else }}title="vimeo video"{{ end }} webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> - </div>{{ else }} + <iframe src="https://player.vimeo.com/video/{{ .Get "id" }}{{- if $pc.EnableDNT -}}?dnt=1{{- end -}}" {{ if not (.Get "class") }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}{{ if .Get "title"}}title="{{ .Get "title" }}"{{ else }}title="vimeo video"{{ end }} webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> +</div>{{ else }} <div {{ if gt (len .Params) 1 }}class="{{ .Get 1 }}"{{ else }}style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"{{ end }}> - <iframe src="https://player.vimeo.com/video/{{ .Get 0 }}" {{ if len .Params | eq 1 }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}{{ if len .Params | eq 3 }}title="{{ .Get 2 }}"{{ else }}title="vimeo video"{{ end }} webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> - </div> + <iframe src="https://player.vimeo.com/video/{{ .Get 0 }}{{- if $pc.EnableDNT -}}?dnt=1{{- end -}}" {{ if len .Params | eq 1 }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}{{ if len .Params | eq 3 }}title="{{ .Get 2 }}"{{ else }}title="vimeo video"{{ end }} webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> +</div> {{ end }} {{- end -}} {{- end -}}`}, - {`shortcodes/vimeo_simple.html`, `{{ $id := .Get "id" | default (.Get 0) }} -{{- $item := getJSON "https://vimeo.com/api/oembed.json?url=https://vimeo.com/" $id -}} + {`shortcodes/vimeo_simple.html`, `{{- $pc := .Page.Site.Config.Privacy.Vimeo -}} +{{- if not $pc.Disable -}} +{{ $id := .Get "id" | default (.Get 0) }} +{{ $dnt := cond (eq $pc.EnableDNT true) "?dnt=1" "" }} +{{- $item := getJSON (print "https://vimeo.com/api/oembed.json?url=https://vimeo.com/" $id $dnt) -}} {{ $class := .Get "class" | default (.Get 1) }} {{ $hasClass := $class }} {{ $class := $class | default "__h_video" }} @@ -522,7 +525,7 @@ if (!doNotTrack) { <img src="{{ $thumb }}" srcset="{{ $thumb }} 1x, {{ $original }} 2x" alt="{{ .title }}"> <div class="play">{{ template "__h_simple_icon_play" $ }}</div></a></div> {{- end -}} -`}, +{{- end -}}`}, {`shortcodes/youtube.html`, `{{- $pc := .Page.Site.Config.Privacy.YouTube -}} {{- if not $pc.Disable -}} {{- $ytHost := cond $pc.PrivacyEnhanced "www.youtube-nocookie.com" "www.youtube.com" -}} diff --git a/tpl/tplimpl/embedded/templates/shortcodes/vimeo.html b/tpl/tplimpl/embedded/templates/shortcodes/vimeo.html index 1680c1694..8ddad9b43 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/vimeo.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/vimeo.html @@ -4,11 +4,11 @@ {{ template "_internal/shortcodes/vimeo_simple.html" . }} {{- else -}} {{ if .IsNamedParams }}<div {{ if .Get "class" }}class="{{ .Get "class" }}"{{ else }}style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"{{ end }}> - <iframe src="https://player.vimeo.com/video/{{ .Get "id" }}" {{ if not (.Get "class") }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}{{ if .Get "title"}}title="{{ .Get "title" }}"{{ else }}title="vimeo video"{{ end }} webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> - </div>{{ else }} + <iframe src="https://player.vimeo.com/video/{{ .Get "id" }}{{- if $pc.EnableDNT -}}?dnt=1{{- end -}}" {{ if not (.Get "class") }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}{{ if .Get "title"}}title="{{ .Get "title" }}"{{ else }}title="vimeo video"{{ end }} webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> +</div>{{ else }} <div {{ if gt (len .Params) 1 }}class="{{ .Get 1 }}"{{ else }}style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"{{ end }}> - <iframe src="https://player.vimeo.com/video/{{ .Get 0 }}" {{ if len .Params | eq 1 }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}{{ if len .Params | eq 3 }}title="{{ .Get 2 }}"{{ else }}title="vimeo video"{{ end }} webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> - </div> + <iframe src="https://player.vimeo.com/video/{{ .Get 0 }}{{- if $pc.EnableDNT -}}?dnt=1{{- end -}}" {{ if len .Params | eq 1 }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}{{ if len .Params | eq 3 }}title="{{ .Get 2 }}"{{ else }}title="vimeo video"{{ end }} webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> +</div> {{ end }} {{- end -}} {{- end -}}
\ No newline at end of file diff --git a/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html b/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html index 9a4fb794d..00080ab59 100644 --- a/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html @@ -1,5 +1,8 @@ +{{- $pc := .Page.Site.Config.Privacy.Vimeo -}} +{{- if not $pc.Disable -}} {{ $id := .Get "id" | default (.Get 0) }} -{{- $item := getJSON "https://vimeo.com/api/oembed.json?url=https://vimeo.com/" $id -}} +{{ $dnt := cond (eq $pc.EnableDNT true) "?dnt=1" "" }} +{{- $item := getJSON (print "https://vimeo.com/api/oembed.json?url=https://vimeo.com/" $id $dnt) -}} {{ $class := .Get "class" | default (.Get 1) }} {{ $hasClass := $class }} {{ $class := $class | default "__h_video" }} @@ -16,3 +19,4 @@ <img src="{{ $thumb }}" srcset="{{ $thumb }} 1x, {{ $original }} 2x" alt="{{ .title }}"> <div class="play">{{ template "__h_simple_icon_play" $ }}</div></a></div> {{- end -}} +{{- end -}}
\ No newline at end of file |