mirror of https://github.com/gohugoio/hugo
68 lines
2.6 KiB
HTML
68 lines
2.6 KiB
HTML
{{- /*
|
|
Renders an embedded Vimeo video.
|
|
|
|
Accepts named or positional arguments. If positional, order is id, class,
|
|
title, then loading.
|
|
|
|
@param {string} [id] The video id. Optional if the id is provided as first positional argument.
|
|
@param {string} [class] The class attribute of the wrapping div element. When specified, removes the style attributes from the iframe element and its wrapping div element.
|
|
@param {string} [loading=eager] The loading attribute of the iframe element.
|
|
@param {string} [title=Vimeo video] The title attribute of the iframe element.
|
|
@param {bool} [allowFullScreen=true] Whether the iframe element can activate full screen mode.
|
|
|
|
@returns {template.HTML}
|
|
|
|
@example {{< vimeo 55073825 >}}
|
|
@example {{< vimeo id=55073825 class="foo bar" loading=lazy title="My Video" >}}
|
|
*/}}
|
|
{{- $pc := site.Config.Privacy.Vimeo }}
|
|
{{- if not $pc.Disable }}
|
|
{{- if $pc.Simple }}
|
|
{{- template "_internal/shortcodes/vimeo_simple.html" . }}
|
|
{{- else }}
|
|
{{- $dnt := cond $pc.EnableDNT 1 0 }}
|
|
|
|
{{- $id := or (.Get "id") (.Get 0) "" }}
|
|
{{- $class := or (.Get "class") (.Get 1) "" }}
|
|
{{- $title := or (.Get "title") (.Get 2) "Vimeo video" }}
|
|
{{- $loading := or (.Get "loading") (.Get 3) "eager" }}
|
|
{{- $allowFullScreen := or (.Get "allowFullScreen") (.Get 4) true }}
|
|
|
|
{{- if in (slice "false" false 0) ($.Get "allowFullScreen") }}
|
|
{{- $allowFullScreen = false }}
|
|
{{- else if in (slice "true" true 1) ($.Get "allowFullScreen") }}
|
|
{{- $allowFullScreen = true }}
|
|
{{- end }}
|
|
|
|
{{- $iframeAllowList := "" }}
|
|
{{- if $allowFullScreen }}
|
|
{{- $iframeAllowList = "fullscreen" }}
|
|
{{- end }}
|
|
|
|
{{- $divStyle := "position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;" }}
|
|
{{- $iframeStyle := "position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" }}
|
|
|
|
{{- with $id }}
|
|
{{- $src := printf "https://player.vimeo.com/video/%v?dnt=%v" . $dnt }}
|
|
<div
|
|
{{- with $class }}
|
|
class="{{ . }}"
|
|
{{- else }}
|
|
style="{{ $divStyle | safeCSS }}"
|
|
{{- end }}>
|
|
<iframe
|
|
src="{{- $src }}"
|
|
{{- if not $class }}
|
|
style="{{ $iframeStyle | safeCSS }}"
|
|
{{- end }}
|
|
{{- with $iframeAllowList }} allow="{{ . }}" {{- end }}
|
|
{{- with $loading }} loading="{{ . }}" {{- end }}
|
|
{{- with $title }} title="{{ . }}" {{- end }}>
|
|
</iframe>
|
|
</div>
|
|
{{- else }}
|
|
{{- errorf "The %q shortcode requires a video id, either as the first positional argument or an argument named id. See %s" .Name .Position }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|