如何在 hugo 网站中嵌入 YouTube 播放列表

How to embed a YouTube playlist in hugo website

我可以使用下面的代码,{{< youtube hvWSg6NblSU >}} 将 YouTube 视频嵌入 hugo 网站,其中 hvWSg6NblSU 是下面 url 中的值:https://www.youtube.com/watch?v=hvWSg6NblSU

我不想嵌入单个视频,而是想嵌入以下播放列表:https://www.youtube.com/playlist?list=PLDe3_HhjV1foHQbtGpdo0FSmsMrVykuKJ

问题: 有什么方法可以嵌入上面的播放列表。基本上我正在尝试使用 hugo 制作一个页面,它将在 YouTube 上显示播放列表。

在以下 link:https://naresh-chaurasia.github.io/talk2naresh/course/python-kids/ 中,我只有一个 YouTube 视频,但想使用 hugo 添加 link 到整个播放列表。可以吗

虽然我可以为播放列表创建 hyperlink,但我想显示 YouTube 播放列表。

谢谢。

built-in youtube 短代码不支持它。

您可以为播放列表创建一个新的 YouTube 短代码。

步骤

  1. 创建:/layouts/shortcodes/youtubepl.html
  2. 在该文件中放置以下内容:(基于 built-in youtube shortcode
{{- $pc := .Page.Site.Config.Privacy.YouTube -}}
{{- if not $pc.Disable -}}
{{- $ytHost := cond $pc.PrivacyEnhanced  "www.youtube-nocookie.com" "www.youtube.com" -}}
{{- $id := .Get "id" | default (.Get 0) -}}
{{- $class := .Get "class" | default (.Get 1) -}}
{{- $title := .Get "title" | default "YouTube Video" }}
<div {{ with $class }}class="{{ . }}"{{ else }}style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"{{ end }}>
  <iframe src="https://{{ $ytHost }}/embed/videoseries?list={{ $id }}{{ with .Get "autoplay" }}{{ if eq . "true" }}&autoplay=1{{ end }}{{ end }}" {{ if not $class }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}allowfullscreen title="{{ $title }}"></iframe>
</div>
{{ end -}}

(旁白:如果您希望使用不同的简码名称,只需更改文件名即可。例如,如果您更喜欢使用 {{< ytplaylist >}},请将简码文件名更改为 ytplaylist.html。)

用法

  • 用法与 built-in {{< youtube >}} 短代码相同,只需使用新的短代码名称即可:{{< youtubepl id="ID-HERE" >}}{{< youtubepl ID-HERE >}}.
  • 您将使用播放列表 ID 而不是视频 ID。