Website Summary Files Commits Branches @commit @diff @stats
path: root / layouts / shortcodes / slide.html
diff options
context:
space:
mode:
1 files changed, 63 insertions, 0 deletions
-rw-r--r--layouts/shortcodes/slide.html63
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 -}}