From 7a9ba59529b4c8004a80bfcaa9e6add91b3ccbf4 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Thu, 27 Jan 2022 22:42:17 -0500 Subject: add pe-picture and pe-figure shortcodes --- .../hugo-pt2021/layouts/shortcodes/pe-picture.html | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 themes/hugo-pt2021/layouts/shortcodes/pe-picture.html (limited to 'themes/hugo-pt2021/layouts/shortcodes/pe-picture.html') diff --git a/themes/hugo-pt2021/layouts/shortcodes/pe-picture.html b/themes/hugo-pt2021/layouts/shortcodes/pe-picture.html new file mode 100644 index 0000000..3135fcf --- /dev/null +++ b/themes/hugo-pt2021/layouts/shortcodes/pe-picture.html @@ -0,0 +1,102 @@ +{{/* +https://github.com/pablotron/hugo-shortcode-ppic + +Custom Hugo table shortcode which renders progressive picture elements +from front matter data. + +This short code exists because the figure shortcode in Hugo does not +support the picture element and does not support progressive image +enhancement. + +Features: +... TODO ... + +*/}} + +{{/* image mime types */}} +{{- $MIME_TYPES := (dict ".webp" "image/webp" ".avif" "image/avif" ".png" "image/png") -}} + +{{/* get picture data */}} +{{- $pic := (index $.Page.Params "pics" (.Get 0)) -}} + +{{- if (reflect.IsSlice $pic) -}} + {{- $pic = (dict "sources" $pic) -}} +{{- end -}} + + + {{- if $pic.sources -}} + {{/* get source count */}} + {{- $num_sources := len $pic.sources -}} + + {{/* render sources */}} + {{- range $x, $src := $pic.sources -}} + {{- $is_map := reflect.IsMap $src -}} + + {{- if $is_map -}} + {{/* source is a map, reference keys */}} + + {{- if (lt $x (sub $num_sources 1)) -}} + {{/* emit source tag */}} + + {{- else -}} + {{/* emit img tag */}} + {{- default $pic.tip $src.tip -}} + {{- end -}} + {{- else -}} + {{/* src is a string */}} + + {{- if (lt $x (sub $num_sources 1)) -}} + {{/* emit source */}} + + {{/* get file extension */}} + {{- $ext := path.Ext $src -}} + + + {{- else -}} + {{/* emit img */}} + {{- $pic.tip -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- end -}} + -- cgit v1.2.3