54 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {{- $path := (.Get "src") -}}
 | |
| {{- $original := .Page.Resources.GetMatch $path -}}
 | |
| {{- if not $original -}}
 | |
|     {{- errorf "couldn't find resource for src: %s" $path -}}
 | |
| {{- else if and (ne "jpeg" $original.MediaType.SubType) (ne "png" $original.MediaType.SubType) -}}
 | |
|     {{- errorf "src %s is a '%s', expected 'jpeg' or 'png'" $path $original.MediaType.SubType -}}
 | |
| {{- else -}}
 | |
|     {{- /* Below is a copy paste of https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/shortcodes/figure.html from Hugo commit aba2647c152ffff927f42523b77ee6651630cd67, with the img tag modified to use srcsets */ -}}
 | |
|     {{- /* Note that it presently uses `markdownify` instead of $.Page.RenderString for consistency with Hugo's `figure` shortcode.  */ -}}
 | |
|     <figure{{ with .Get "class" }} class="{{ . }}"{{ end }}>
 | |
|         {{- if .Get "link" -}}
 | |
|             <a href="{{ .Get "link" }}"{{ with .Get "target" }} target="{{ . }}"{{ end }}{{ with .Get "rel" }} rel="{{ . }}"{{ end }}>
 | |
|         {{- end }}
 | |
|         {{ if (or (ge $original.Width 1304) (ge $original.Height 1304)) -}}
 | |
|             {{/* Add the original to the droplist, so it will get removed later. */}}
 | |
|             {{- if not (.Page.Scratch.Get "droplist") -}}
 | |
|                 {{- .Page.Scratch.Set "droplist" (slice) -}}
 | |
|             {{- end -}}
 | |
|             {{- .Page.Scratch.Add "droplist" $original.RelPermalink -}}
 | |
|             {{/* Note: 652px is the max width of an img in article content. I measured this using dev tools; but it's dependent on the styles for the page. */}}
 | |
|             {{- $resized_1x := $original.Fit "652x652 q95" -}}
 | |
|             {{- $resized_2x := $original.Fit "1304x1304 q95" -}}
 | |
|             <img srcset="{{ $resized_1x.RelPermalink }},
 | |
|                          {{ $resized_2x.RelPermalink }} 2x"
 | |
|                 {{- /* Use small one by default to be kind to old browsers */}}
 | |
|                 src="{{ $resized_1x.RelPermalink }}"
 | |
|         {{ else }}
 | |
|             <img src="{{ $original.RelPermalink }}"
 | |
|         {{ end }}
 | |
|             {{- if or (.Get "alt") (.Get "caption") -}}
 | |
|             alt="{{ with .Get "alt" }}{{ . }}{{ else }}{{ .Get "caption" | markdownify| plainify }}{{ end }}"
 | |
|             {{- end -}}
 | |
|             {{- with .Get "width" }} width="{{ . }}"{{ end -}}
 | |
|             {{- with .Get "height" }} height="{{ . }}"{{ end -}}
 | |
|         /> <!-- Closing img tag -->
 | |
|         {{- if .Get "link" }}</a>{{ end -}}
 | |
|         {{- if or (or (.Get "title") (.Get "caption")) (.Get "attr") }}
 | |
|             <figcaption>
 | |
|                 {{ with (.Get "title") -}}
 | |
|                     <h4>{{ . }}</h4>
 | |
|                 {{- end -}}
 | |
|                 {{- if or (.Get "caption") (.Get "attr") -}}<p>
 | |
|                     {{- .Get "caption" | markdownify -}}
 | |
|                     {{- with .Get "attrlink" }}
 | |
|                         <a href="{{ . }}">
 | |
|                     {{- end -}}
 | |
|                     {{- .Get "attr" | markdownify -}}
 | |
|                     {{- if .Get "attrlink" }}</a>{{ end }}</p>
 | |
|                 {{- end }}
 | |
|             </figcaption>
 | |
|         {{- end }}
 | |
|     </figure>
 | |
| {{- end -}}
 |