{{/* Hugo Blox Slides Embed Component - Reusable iframe embed with fullscreen support Usage: {{ partial "components/slides-embed.html" (dict "page" . "slides_slug" .Params.slides) }} Params: - page: current page context - slides_slug: slug of slides to embed (e.g., "example") - show_actions: (optional) show open/speaker notes links, default true - title: (optional) title for iframe, defaults to page title */}} {{ $page := .page }} {{ $slides_slug := .slides_slug }} {{ $show_actions := .show_actions | default true }} {{ $slides_label := i18n "slides" | default "Slides" }} {{ $present_fullscreen_label := i18n "present_fullscreen" | default "Present (fullscreen)" }} {{ $enter_fullscreen_label := i18n "enter_fullscreen" | default "Enter fullscreen" }} {{ $exit_fullscreen_label := i18n "exit_fullscreen" | default "Exit fullscreen" }} {{ $speaker_notes_hint := i18n "speaker_notes_hint" | default "for speaker notes" }} {{ $slides_not_found_label := i18n "slides_not_found" | default "Slides not found" }} {{ $embed_title := .title | default (printf "%s - %s" $page.Title $slides_label) }} {{/* Enable Alpine.js for fullscreen functionality */}} {{ $page.Store.Set "has_alpine" true }} {{/* Get slides page */}} {{ $slides_page := site.GetPage (printf "/slides/%s" $slides_slug) }} {{ $scr := newScratch }} {{ if $slides_page }} {{ $scr.Set "slides_url" $slides_page.RelPermalink }} {{ $scr.Set "present_url" $slides_page.RelPermalink }} {{ $scr.Set "embed_url" $slides_page.RelPermalink }} {{ $present_format := $slides_page.OutputFormats.Get "present" }} {{ if not $present_format }} {{ $present_format = $slides_page.OutputFormats.Get "Present" }} {{ end }} {{ with $present_format }} {{ $scr.Set "present_url" .RelPermalink }} {{ $scr.Set "embed_url" (printf "%s?embed=1" .RelPermalink) }} {{ end }} {{ end }} {{ $slides_url := $scr.Get "slides_url" }} {{ $present_url := $scr.Get "present_url" | default $slides_url }} {{ $embed_url := $scr.Get "embed_url" | default $slides_url }} {{ if $slides_page }}
{{ $slides_not_found_label }}: {{ $slides_slug }}
{{ end }}