diff options
1 files changed, 63 insertions, 0 deletions
| -rw-r--r-- | layouts/shortcodes/slide.html | 63 |
diff --git a/layouts/shortcodes/slide.html b/layouts/shortcodes/slide.html new file mode 100644 index 0000000..0016326 --- /dev/null +++ b/layouts/shortcodes/slide.html @@ -0,0 +1,63 @@ +{{- $scratch := .Scratch -}} +{{- $scratch.Set "slides" slice -}} +{{- $content := .Get "content" -}} +{{- if $content -}} + {{- $lookup := split $content "." }} + {{ $markdownContent := .Page.Site.Data }} + {{- range $dataPath := $lookup -}} + {{- $markdownContent = index $markdownContent $dataPath -}} + {{- end -}} + {{- $html := $markdownContent | markdownify -}} + {{- $html := replace $html "<hr>" "<hr />" -}} + {{- $slides := split $html "<hr />" -}} + {{- range $slides -}} + {{- $scratch.Add "slides" . -}} + {{- end -}} +{{- else -}} + {{- $scratch.Add "slides" "" -}} +{{- end -}} +{{- $params := . -}} +{{- $noPrefix := slice "id" "class" -}} +{{- $noOutput := slice "content" "template" -}} +{{- $template := $params.Get "template" -}} +{{- if $template -}} + {{- $scratch.Add "templateParams" slice -}} + {{- with $.Site.Params.reveal_hugo.templates -}} + {{- $scratch.Add "templateParams" . -}} + {{- end -}} + {{- if ne $.Page.File.LogicalName "_index.md" -}} + {{- $scratch.Add "templateParams" ($.Site.GetPage $.Page.Section).Params.reveal_hugo.templates -}} + {{- end -}} + {{- with $.Page.Params.reveal_hugo.templates -}} + {{- $scratch.Add "templateParams" . -}} + {{- end -}} + {{- $scratch.Add "templateParams" (slice $.Page.Params.reveal_hugo.templates) -}} + {{- $templateParams := $scratch.Get "templateParams" }} + {{- range $templateParams -}} + {{- if (ne . nil) -}} + {{- range $key, $value := (index . $template) -}} + {{- $scratch.SetInMap "template" $key $value | safeHTMLAttr -}} + {{- end -}} + {{- end -}} + {{- end -}} +{{- end -}} +{{- range $sindex, $svalue := $scratch.Get "slides" }} +<section data-noprocess data-shortcode-slide +{{- if $template -}} + {{- range $key, $value := ($scratch.Get "template") }} + {{- $attrName := cond (in $noPrefix $key) $key (delimit (slice "data" $key) "-") }} + {{ $attrName | safeHTMLAttr }}="{{ $value }}" + {{- end }} + data-template="{{ $template }}" +{{- end -}} + {{- range $key, $value := $.Params -}} + {{- if not (in $noOutput $key) -}} + {{- $attrName := cond (in $noPrefix $key) $key (delimit (slice "data" $key) "-") }} + {{ $attrName | safeHTMLAttr }}="{{ $value }}" + {{- end -}} + {{- end -}}> + {{ $svalue | safeHTML }} +{{- if ne $sindex (sub (len ($scratch.Get "slides")) 1) -}} +</section> +{{- end -}} +{{- end -}} |
