From f919b8bd907a76efcb624eba30df539a9403d5ff Mon Sep 17 00:00:00 2001
From: Victor Lourme <victor.lourme@icloud.com>
Date: Fri, 11 Dec 2020 16:33:02 +0100
Subject: [PATCH] feat(sidebar): add support for external avatar (#53)

add [params.sidebar.avatar] section in config.toml, with 2 fields: local and src

Migration guide:
 - Copy the old value of `params.sidebar.avatar` to `param.sidebar.avatar.src`
 - Set params.sidebar.avatar.local = true

Co-authored-by: Jimmy Cai <jimmehcai@gmail.com>
---
 exampleSite/config.toml            |  4 +++-
 layouts/partials/sidebar/left.html | 18 +++++++++++-------
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/exampleSite/config.toml b/exampleSite/config.toml
index 3134043..59d57d0 100644
--- a/exampleSite/config.toml
+++ b/exampleSite/config.toml
@@ -21,8 +21,10 @@ DefaultContentLanguage = "en"                   # Theme i18n support
         
     [params.sidebar]
         emoji = "🍥"
-        avatar = "img/avatar.png"
         subtitle = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
+        [params.sidebar.avatar]
+            local = true
+            src = "img/avatar.png"
         
     [params.article]
         math = false
diff --git a/layouts/partials/sidebar/left.html b/layouts/partials/sidebar/left.html
index 5081b7c..9205fa4 100644
--- a/layouts/partials/sidebar/left.html
+++ b/layouts/partials/sidebar/left.html
@@ -8,14 +8,18 @@
     <header class="site-info">
         {{ with .Site.Params.sidebar.avatar }}
             <figure class="site-avatar">
-                {{ $avatar := resources.Get (.) }}
-
-                {{ if $avatar }}
-                    {{ $avatarResized := $avatar.Resize "300x300" }}
-                    <img src="{{ $avatarResized.RelPermalink }}" width="{{ $avatarResized.Width }}"
-                        height="{{ $avatarResized.Height }}" class="site-logo" loading="lazy" alt="Avatar">
+                {{ if not .local }}
+                    <img src="{{ .src }}" width="300" height="300" class="site-logo" loading="lazy" alt="Avatar">
                 {{ else }}
-                    {{ errorf "Failed loading avatar from %q" . }}
+                    {{ $avatar := resources.Get (.src) }}
+                    
+                    {{ if $avatar }}
+                        {{ $avatarResized := $avatar.Resize "300x" }}
+                        <img src="{{ $avatarResized.RelPermalink }}" width="{{ $avatarResized.Width }}"
+                            height="{{ $avatarResized.Height }}" class="site-logo" loading="lazy" alt="Avatar">
+                    {{ else }}
+                        {{ errorf "Failed loading avatar from %q" . }}
+                    {{ end }}
                 {{ end }}
 
                 {{ with $.Site.Params.sidebar.emoji }}