浏览代码

feat: add simple Avatar variation of About widget

George Cushen 3 年之前
父节点
当前提交
8b6612e763
共有 1 个文件被更改,包括 65 次插入0 次删除
  1. 65 0
      wowchemy/layouts/partials/widgets/about.avatar.html

+ 65 - 0
wowchemy/layouts/partials/widgets/about.avatar.html

@@ -0,0 +1,65 @@
+{{ $ := .root }}
+{{ $page := .page }}
+
+{{ $author := "" }}
+{{ if .author }}
+{{ $author = .author }}
+{{ else }}
+{{ $author = $page.Params.author }}
+{{end}}
+
+{{ $person_page_path := (printf "/authors/%s" $author) }}
+{{ $person_page := site.GetPage $person_page_path }}
+{{ if not $person_page }}
+{{ errorf "Could not find an author page at `%s`. Please check the value of `author` in your About widget and create an associated author page if one does not already exist. See https://wowchemy.com/docs/page-builder/#about " $person_page_path }}
+{{end}}
+{{ $person := $person_page.Params }}
+{{ $avatar := ($person_page.Resources.ByType "image").GetMatch "*avatar*" }}
+{{ $avatar_shape := site.Params.avatar.shape | default "circle" }}
+
+<div id="profile">
+
+  {{ if site.Params.avatar.gravatar }}
+  <img class="avatar {{if eq $avatar_shape "square"}}avatar-square{{else}}avatar-circle{{end}}" src="https://s.gravatar.com/avatar/{{ md5 $person.email }}?s=150')" alt="{{$person_page.Title}}">
+  {{ else if $avatar }}
+  {{ $avatar_image := $avatar.Fill "150x150 Center" }}
+  <img class="avatar {{if eq $avatar_shape "square"}}avatar-square{{else}}avatar-circle{{end}}" src="{{ $avatar_image.RelPermalink }}" alt="{{$person_page.Title}}">
+  {{ end }}
+
+  <div class="portrait-title">
+    <h2>{{ $person_page.Title }}</h2>
+    {{ with $person.role }}<h3>{{ . | markdownify | emojify }}</h3>{{ end }}
+
+    {{ range $person.organizations }}
+    <h3>
+      {{ with .url }}<a href="{{ . }}" target="_blank" rel="noopener">{{ end }}
+      <span>{{ .name }}</span>
+      {{ if .url }}</a>{{ end }}
+    </h3>
+    {{ end }}
+  </div>
+
+  <ul class="network-icon" aria-hidden="true">
+    {{ range $person.social }}
+    {{ $pack := or .icon_pack "fas" }}
+    {{ $pack_prefix := $pack }}
+    {{ if in (slice "fab" "fas" "far" "fal") $pack }}
+      {{ $pack_prefix = "fa" }}
+    {{ end }}
+    {{ $link := .link }}
+    {{ $scheme := (urls.Parse $link).Scheme }}
+    {{ $target := "" }}
+    {{ if not $scheme }}
+      {{ $link = .link | relLangURL }}
+    {{ else if in (slice "http" "https") $scheme }}
+      {{ $target = "target=\"_blank\" rel=\"noopener\"" }}
+    {{ end }}
+    <li>
+      <a href="{{ $link | safeURL }}" {{ $target | safeHTMLAttr }} aria-label="{{ .icon }}">
+        <i class="{{ $pack }} {{ $pack_prefix }}-{{ .icon }} big-icon"></i>
+      </a>
+    </li>
+    {{ end }}
+  </ul>
+
+</div>