- {{ $src := "" }}
- {{ if site.Params.useGravatar }}
- {{ $src = printf "https://s.gravatar.com/avatar/%s?s=200" (md5 ($.Param "email")) }}
-

- {{ else }}
- {{ if $.Param "authorImageUrl" }}
-

- {{ else if $.Param "authorImage" }}
-

- {{ else if (fileExists "static/images/whoami/avatar.png") }}
-

- {{ else if (fileExists "static/images/whoami/avatar.svg") }}
-

- {{ else }}
-

- {{ end }}
- {{ end }}
+ {{ $url := partial "partials/whoami/img-url" (dict
+ "urlSource" ($.Param "authorImageUrl")
+ "fileSource" ($.Param "authorImage")
+ "size" 150
+ )}}
+
diff --git a/layouts/partials/sidebar/site-bio.html b/layouts/partials/sidebar/site-bio.html
index 57fc4b5..19db697 100644
--- a/layouts/partials/sidebar/site-bio.html
+++ b/layouts/partials/sidebar/site-bio.html
@@ -3,23 +3,11 @@
{{ if ($.Param "enableBioImage" | default true) }}
- {{ $src := "" }}
- {{ if site.Params.useGravatar }}
- {{ $src = printf "https://s.gravatar.com/avatar/%s?s=200" (md5 ($.Param "email")) }}
-

- {{ else }}
- {{ if $.Param "bioImageUrl" }}
-

- {{ else if (fileExists "static/images/whoami/avatar.png") }}
-

- {{ else if (fileExists "static/images/whoami/avatar.jpg") }}
-

- {{ else if (fileExists "static/images/whoami/avatar.svg") }}
-

- {{ else }}
-

- {{ end }}
- {{ end }}
+ {{ $url := partial "partials/whoami/img-url" (dict
+ "urlSource" ($.Param "bioImageUrl")
+ "size" 250
+ )}}
+
{{ end }}
@@ -29,7 +17,7 @@
{{ $.Param "whoami" }}
-
+
{{ if $.Param "organization" }}
@@ -50,10 +38,10 @@
{{ if $.Param "email" }}
{{ end }}
diff --git a/layouts/partials/whoami/img-url.html b/layouts/partials/whoami/img-url.html
new file mode 100644
index 0000000..1540c65
--- /dev/null
+++ b/layouts/partials/whoami/img-url.html
@@ -0,0 +1,38 @@
+
+{{- if site.Params.useGravatar -}}
+ {{- printf "https://s.gravatar.com/avatar/%s?s=%d" (md5 .email) .size -}}
+{{- else if .urlSoure -}} {{/* If an url source is set, use it directly. */}}
+ {{- .urlSoure -}}
+{{- else -}}
+ {{- $imageResource := "" -}}
+
+ {{- if .fileSource -}}
+ {{- if (hasPrefix .fileSource "assets/") -}} {{/* If the explicit file source is within assets, get its resource */}}
+ {{- $imageResource = resources.Get (strings.TrimPrefix "assets/" .fileSource) -}}
+ {{- end -}}
+ {{- else -}} {{/* If file source is not explicitly set, try to find an avatar */}}
+ {{- if (fileExists "assets/images/whoami/avatar.png") -}}
+ {{- $imageResource = resources.Get "images/whoami/avatar.png" -}}
+ {{- else if (fileExists "assets/images/whoami/avatar.jpg") -}}
+ {{- $imageResource = resources.Get "images/whoami/avatar.jpg" -}}
+ {{- else if (fileExists "assets/images/whoami/avatar.svg") -}}
+ {{- $imageResource = resources.Get "images/whoami/avatar.svg" -}}
+ {{- end -}}
+ {{- end -}}
+
+ {{- if $imageResource -}} {{/* If we have an asset image, resize it & get its url */}}
+ {{- ($imageResource.Resize (printf "%dx" .size)).RelPermalink -}}
+ {{- else if .fileSource -}} {{/* If a file source was specified but it did not resulted in an asset, it's a static file */}}
+ {{- .fileSource -}}
+ {{- else -}} {{/* Otherwise, lookup in static files */}}
+ {{- if (fileExists "static/images/whoami/avatar.png") -}}
+ {{- "images/whoami/avatar.png" | relURL -}}
+ {{- else if (fileExists "static/images/whoami/avatar.jpg") -}}
+ {{- "images/whoami/avatar.jpg" | relURL -}}
+ {{- else if (fileExists "static/images/whoami/avatar.svg") -}}
+ {{- "images/whoami/avatar.svg" | relURL -}}
+ {{- else -}}
+ {{- "images/whoami/avatar.jpg" | relURL -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
\ No newline at end of file