diff --git a/README.md b/README.md index 183bf1ae..252773a8 100644 --- a/README.md +++ b/README.md @@ -639,6 +639,52 @@ Parameters: It has the other parameters of the `paige/figure` shortcode. +### YouTube + +The `paige/youtube` shortcode provides a responsive YouTube video. + +``` +{{< paige/youtube + autoplay=false + controls=true + end=20 + fullscreen=true + list=PL2WkvfelorAFjpzGUWc4OWAWmiJpwL97L + loop=true + mute=true + start=10 + title="My title" + video="dQw4w9WgXcQ" +>}} +``` + +Inner content: None. + +Parameters: + +
+
autoplay
+
Optional. Boolean. Automatically play the video.
+
controls
+
Optional. Boolean. Show video controls. Default is true.
+
end
+
Optional. Integer. Elapsed seconds. Stop the video here.
+
fullscreen
+
Optional. Boolean. Enable full screen. Default is true.
+
list
+
Optional. String. Playlist ID.
+
loop
+
Optional. Boolean. Loop the video.
+
mute
+
Optional. Boolean. Mute the video.
+
start
+
Optional. Integer. Elapsed seconds. Start the video here.
+
title
+
Optional. String. Video description. Used for screen readers. Default is YouTube video.
+
video
+
Optional. Position 0. String. Video ID.
+
+ ## Customize If `partials/paige/head-last.html` exists in the site, it is included at the end of the head tag. diff --git a/exampleSite/content/blog/youtube.md b/exampleSite/content/blog/youtube.md new file mode 100644 index 00000000..db7b6aa0 --- /dev/null +++ b/exampleSite/content/blog/youtube.md @@ -0,0 +1,59 @@ +--- +categories: [paige] +date: 2023-01-20 +description: Demonstration of the Paige YouTube shortcode. +tags: [shortcodes, videos] +title: YouTube Shortcode +--- + +Code: + +```go-text-template +{{}} +``` + +Result: + +{{< paige/youtube "dQw4w9WgXcQ" >}} + +--- + +Code: + +```go-text-template +{{}} +``` + +Result: + +{{< paige/youtube video="dQw4w9WgXcQ" >}} + +--- + +Code: + +```go-text-template +{{}} +``` + +Result: + +{{< paige/youtube + controls=true + end=20 + fullscreen=true + loop=true + mute=true + start=10 + title="My title" + video="dQw4w9WgXcQ" +>}} diff --git a/layouts/shortcodes/paige/youtube.html b/layouts/shortcodes/paige/youtube.html new file mode 100644 index 00000000..805b73a6 --- /dev/null +++ b/layouts/shortcodes/paige/youtube.html @@ -0,0 +1,62 @@ +{{ $autoplay := .Get "autoplay" }} +{{ $controls := .Get "controls" | default true }} +{{ $end := .Get "end" }} +{{ $fullscreen := .Get "fullscreen" | default true }} +{{ $list := .Get "list" }} +{{ $loop := .Get "loop" }} +{{ $mute := .Get "mute" }} +{{ $start := .Get "start" }} +{{ $title := .Get "title" | default "YouTube video" }} +{{ $video := .Get 0 | default (.Get "video") | default "dQw4w9WgXcQ" }} + +{{ $host := cond .Page.Site.Config.Privacy.YouTube.PrivacyEnhanced "www.youtube-nocookie.com" "www.youtube.com" }} + +{{ $path := "" }} + +{{ if $list }} + {{ $path = printf "embed?list=%v&listtype=playlist" $list }} +{{ else }} + {{ $path = printf "embed/%v" $video }} +{{ end }} + +{{ $params := slice (printf "hl=es" (.Site.LanguageCode | default .Site.Language.Lang)) "modestbranding=1" }} + +{{ if $autoplay }} + {{ $params = $params | append "autoplay=1" | append "mute=1" }} +{{ end }} + +{{ if not $controls }} + {{ $params = $params | append "controls=0" }} +{{ end }} + +{{ with $end }} + {{ $params = $params | append (printf "end=%v" .) }} +{{ end }} + +{{ if not $fullscreen }} + {{ $params = $params | append "fs=0" }} +{{ end }} + +{{ if $loop }} + {{ $params = $params | append "loop=1" }} + + {{ if $video }} + {{ $params = $params | append (printf "playlist=%v" $video) }} + {{ end }} +{{ end }} + +{{ if $mute }} + {{ $params = $params | append "mute=1" }} +{{ end }} + +{{ with $start }} + {{ $params = $params | append (printf "start=%v" .) }} +{{ end }} + +{{ if $params }} + {{ $params = delimit (uniq (sort $params)) "&" }} +{{ end }} + +
+ +