summaryrefslogtreecommitdiffstats
path: root/layouts/partials/sidebar.html
blob: 483e90b20128c4fb1b1a75a2922703b8dde17a62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<aside class="order-last md:order-none md:col-span-1">
  <!-- Article stats widget -->
  <div class="sidebar-widget">
    <p class="sidebar-widget-label"># {{ i18n "articleStats" }}</p>

    {{ if .Params.image }}
    <img
      src="{{ .Params.image }}"
      alt="{{ .Title }}"
      loading="lazy"
      class="w-full rounded mb-4 object-cover max-h-40"
    >
    {{ end }}

    <ul class="space-y-2 text-sm text-text-dim">
      <li class="flex items-center gap-2">
        <i data-feather="user" class="w-4 h-4 shrink-0" aria-hidden="true"></i>
        <span>{{ .Site.Params.author }}</span>
      </li>
      <li class="flex items-center gap-2">
        <i data-feather="file-text" class="w-4 h-4 shrink-0" aria-hidden="true"></i>
        <span>{{ .WordCount }} {{ i18n "words" }}</span>
      </li>
      {{ if .Site.Params.readingTime }}
      <li class="flex items-center gap-2">
        <i data-feather="clock" class="w-4 h-4 shrink-0" aria-hidden="true"></i>
        <span>{{ .ReadingTime }} {{ i18n "min" }} {{ i18n "readingTime" }}</span>
      </li>
      {{ end }}
      {{ $articleType := .Params.type | default "" }}
      {{ $typeConfig := .Site.Params.articleTypes }}
      {{ $typeData := index $typeConfig $articleType }}
      {{ if and $typeData $articleType }}
      <li class="flex items-center gap-2">
        <i data-feather="tag" class="w-4 h-4 shrink-0" aria-hidden="true"></i>
        <span
          class="inline-flex items-center px-2.5 py-1 rounded text-sm font-mono font-semibold whitespace-nowrap transition-all duration-200"
          style="background-color: var(--type-{{ $articleType }}); border: 1px solid var(--type-{{ $articleType }}); color: var(--type-{{ $articleType }}-text);"
        >{{ i18n $articleType }}</span>
      </li>
      {{ end }}
    </ul>
  </div>

  <hr class="sidebar-hr">

  <!-- Social sharing widget -->
  {{ partial "social-share.html" (dict "page" . "mode" "sidebar") }}

  <!-- Related posts widget (articles only) -->
  {{ if and .Site.Params.relatedPosts (eq .Section "articles") }}
  {{ $related := first 5 (.Site.RegularPages.Related .) }}
  <hr class="sidebar-hr">
  <div class="sidebar-widget">
    <p class="sidebar-widget-label"># {{ i18n "relatedPosts" }}</p>
    {{ if $related }}
    <ul class="space-y-3">
      {{ range $related }}
      {{ $articleType := .Params.type | default "life" }}
      {{ $excerpt := .Description | default .Summary }}
      <li
        class="pl-3 border-l-2"
        style="border-color: var(--type-{{ $articleType }});"
      >
        <a href="{{ .RelPermalink }}" class="text-sm hover:text-accent transition-colors leading-snug block">
          {{ .Title }}
          <time class="text-text-dim/60 ml-1" datetime="{{ .PublishDate.Format "2006-01-02T15:04:05Z07:00" }}">
            · {{ .PublishDate.Format "Jan 2006" }}
          </time>
        </a>
        {{ if $excerpt }}
        <p class="text-xs text-text-dim/70 leading-snug mt-0.5 line-clamp-1">
          {{ $excerpt | plainify | truncate 60 }}
        </p>
        {{ end }}
      </li>
      {{ end }}
    </ul>
    {{ else }}
    <p class="text-sm text-text-dim">{{ i18n "noRelated" }}</p>
    {{ end }}
  </div>
  {{ end }}

  <hr class="sidebar-hr">

  <!-- Tag Cloud Widget -->
  {{ partial "tag-cloud.html" (dict "page" . "showCount" false "wrapInWidget" true "maxTags" 15) }}
</aside>