{{ $articleType := .Params.type | default "life" }}
{{ $typeConfig := .Site.Params.articleTypes }}
{{ $typeData := index $typeConfig $articleType }}
+{{ $excerpt := .Description | default .Summary }}
-<a
- href="{{ .RelPermalink }}"
- class="block p-4 md:p-6 border border-border/30 rounded hover:border-accent/50 hover:bg-surface/30 transition-all duration-200 group"
->
- <!-- Pinned badge -->
- {{ if .Params.pinned }}
- <div class="mb-3 inline-flex items-center gap-1 px-2 py-1 rounded text-sm font-semibold" style="color: {{ .Site.Params.secondaryAccent }};">
- 📌 PINNED
- </div>
+<article class="border border-border/30 rounded-lg overflow-hidden hover:border-accent/50 transition-all duration-200 group">
+ <!-- Thumbnail -->
+ {{ if .Params.image }}
+ <a href="{{ .RelPermalink }}" class="block overflow-hidden bg-surface/50" tabindex="-1">
+ <img
+ src="{{ .Params.image }}"
+ alt="{{ .Title }}"
+ class="w-full aspect-video object-cover group-hover:scale-105 transition-transform duration-200"
+ loading="lazy"
+ />
+ </a>
{{ end }}
- <!-- Title -->
- <h3 class="text-lg font-semibold group-hover:text-accent transition-colors mb-3">
- {{ .Title }}
- </h3>
+ <!-- Content -->
+ <div class="p-5 md:p-6 space-y-3">
+ <!-- Pinned badge -->
+ {{ if .Params.pinned }}
+ <div class="inline-flex items-center gap-1 px-2 py-1 rounded text-sm font-semibold" style="color: {{ .Site.Params.secondaryAccent }};">
+ 📌 PINNED
+ </div>
+ {{ end }}
+
+ <!-- Title -->
+ <h3 class="text-xl font-semibold">
+ <a href="{{ .RelPermalink }}" class="group-hover:text-accent transition-colors">
+ {{ .Title }}
+ </a>
+ </h3>
- <!-- Metadata -->
- <div class="flex flex-wrap items-center gap-3 text-sm text-text-dim">
- <!-- Publish date -->
- <time datetime="{{ .PublishDate.Format "2006-01-02T15:04:05Z07:00" }}">
- {{ .PublishDate.Format "Jan 2, 2006" }}
- </time>
+ <!-- Metadata -->
+ <div class="flex flex-wrap items-center gap-3 text-sm text-text-dim">
+ <!-- Publish date -->
+ <time datetime="{{ .PublishDate.Format "2006-01-02T15:04:05Z07:00" }}">
+ {{ .PublishDate.Format "Jan 2, 2006" }}
+ </time>
- <!-- Type badge -->
- {{ if $typeData }}
- <span
- class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium transition-colors type-{{ $articleType }}"
- >
- {{ i18n $articleType }}
- </span>
+ <!-- Type badge -->
+ {{ if $typeData }}
+ <span
+ class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium transition-colors type-{{ $articleType }}"
+ >
+ {{ i18n $articleType }}
+ </span>
+ {{ end }}
+ </div>
+
+ <!-- Excerpt -->
+ {{ if $excerpt }}
+ <p class="text-text-dim text-sm line-clamp-3 leading-relaxed">
+ {{ $excerpt | plainify }}
+ </p>
{{ end }}
+
+ <!-- CTA Button -->
+ <a
+ href="{{ .RelPermalink }}"
+ class="inline-flex items-center gap-2 px-3 py-2 rounded border border-border/30 text-sm font-medium hover:border-accent/50 hover:text-accent transition-colors group/cta"
+ >
+ {{ i18n "readMore" }}
+ <i data-feather="arrow-right" class="w-4 h-4 group-hover/cta:translate-x-1 transition-transform"></i>
+ </a>
</div>
-</a>
+</article>