summaryrefslogtreecommitdiff
path: root/layouts
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-06-07 02:50:09 +0800
committerEltrac <hi@guhub.cn>2025-06-07 02:50:09 +0800
commitf8f728edbfeecdfeb5e7b3f61994af6028a01680 (patch)
treec26c78a7ebbbd86b3312627a431e95545a367a69 /layouts
parent0660eba2d965e07e72496616ff3527aa6d2dd506 (diff)
parent2108c84a3efdbd1d0583283fa53bc9851e3a5e63 (diff)
Merge branch 'master' of https://github.com/BigCoke233/geek-death-project
Former-commit-id: 92b9414863c95a4b034ca2687ab326484af52496
Diffstat (limited to 'layouts')
-rw-r--r--layouts/_default/featured.html10
-rw-r--r--layouts/_default/section.html9
-rw-r--r--layouts/_default/stats.html3
-rw-r--r--layouts/_default/uncategorized.html2
-rw-r--r--layouts/cards/section.html20
-rw-r--r--layouts/cards/single.html31
-rw-r--r--layouts/categories/taxonomy.html2
-rw-r--r--layouts/categories/term.html2
-rw-r--r--layouts/fictions/single.html11
-rw-r--r--layouts/index.html33
-rw-r--r--layouts/library/single.html16
-rw-r--r--layouts/partials/components/banner.html1
-rw-r--r--layouts/partials/components/category-pill.html8
-rw-r--r--layouts/partials/components/comment.html5
-rw-r--r--layouts/partials/components/date.html26
-rw-r--r--layouts/partials/components/endnotes.html10
-rw-r--r--layouts/partials/components/global-search.html2
-rw-r--r--layouts/partials/components/logo.html10
-rw-r--r--layouts/partials/components/now-read-this.html19
-rw-r--r--layouts/partials/components/post-page-header.html12
-rw-r--r--layouts/partials/components/postnav.html11
-rw-r--r--layouts/partials/components/tags.html3
-rw-r--r--layouts/partials/components/toc.html2
-rw-r--r--layouts/partials/components/word-count-chart.html (renamed from layouts/partials/components/wordCountChart.html)0
-rw-r--r--layouts/partials/header.html11
-rw-r--r--layouts/partials/items/card.html18
-rw-r--r--layouts/posts/single.html79
-rw-r--r--layouts/shortcodes/link.html14
-rw-r--r--layouts/term/term.html4
29 files changed, 168 insertions, 206 deletions
diff --git a/layouts/_default/featured.html b/layouts/_default/featured.html
index 5b921e05..86d5f53a 100644
--- a/layouts/_default/featured.html
+++ b/layouts/_default/featured.html
@@ -16,18 +16,14 @@
<header>
<div class="posts-item-meta">
<p>
- <time>
- {{ .Date.Format "Jan 2, 2006" }}
- </time>
+ <time>{{ .Date.Format "Jan 2, 2006" }}</time>
<span>·</span>
- {{ range .Params.tags }}
- <a class="post-tag" href="{{ site.LanguagePrefix }}/tags/{{ lower . | urlize }}/">#{{ . }}</a>
- {{ end }}
+ {{ partial "components/tags" . }}
</p>
<h2 class="posts-item-title">
<a
href="{{ .Permalink }}"
- data-umami-event="Click post link from featured"
+ data-umami-event="🪶 Click post link from featured"
>
{{ if eq .Section "library" }}
读《{{ .Title }}》
diff --git a/layouts/_default/section.html b/layouts/_default/section.html
index d1ad5401..c051990e 100644
--- a/layouts/_default/section.html
+++ b/layouts/_default/section.html
@@ -2,9 +2,8 @@
<article class="posts">
{{ partial "header.html" . }}
<div id="posts-archive" class="posts-list">
- {{ partial "components/wordCountChart.html" . }}
<!-- Post Archive List -->
- {{ $first := true }} <!-- 在循环外定义一次 $first 变量 -->
+ {{ $remainingMonthsToOpen := 3 }}
{{ range (where site.RegularPages "Type" "eq" "posts").GroupByDate "2006" -}}
<section class="posts-year-archive">
<h1 class="posts-year-title">
@@ -12,8 +11,8 @@
<small class="font-mono">{{ T "archivePage.postCountAnnual" (len .Pages) }}</small>
</h1>
- {{ range .Pages.GroupByDate "January" }} <!-- 这里每个月的循环 -->
- <details class="posts-month-archive"{{ if $first }} open{{ end }}>
+ {{ range .Pages.GroupByDate "January" }}
+ <details class="posts-month-archive"{{ if gt $remainingMonthsToOpen 0 }} open{{ end }}>
<summary>
<h2 class="posts-month-title">
{{ .Key }}
@@ -44,7 +43,7 @@
</ul>
</div>
</details>
- {{ $first = false }} <!-- 将 $first 设置为 false 只在第一个月份显示后 -->
+ {{ $remainingMonthsToOpen = sub $remainingMonthsToOpen 1 }}
{{ end }}
</section>
{{ end }}
diff --git a/layouts/_default/stats.html b/layouts/_default/stats.html
index 07f9845f..8ca0cf47 100644
--- a/layouts/_default/stats.html
+++ b/layouts/_default/stats.html
@@ -117,6 +117,9 @@
</table>
</section>
+ <h2>每月文章字数</h2>
+ {{ partial "components/word-count-chart" . }}
+
<hr>
<section>
diff --git a/layouts/_default/uncategorized.html b/layouts/_default/uncategorized.html
index afec928a..d29fa2e8 100644
--- a/layouts/_default/uncategorized.html
+++ b/layouts/_default/uncategorized.html
@@ -12,7 +12,7 @@
<ol class="term-list-posts">
{{ range $uncategorized }}
<li>
- <a href="{{ .RelPermalink }}" data-umami-event="Click Post Link from Uncategorized">
+ <a href="{{ .RelPermalink }}" data-umami-event="🈚️ Click Post Link from Uncategorized">
{{ .Title }}{{ with .Params.subtitle }}:<span class="posts-subtitle">{{. }}</span>
{{ end }}
</a>
diff --git a/layouts/cards/section.html b/layouts/cards/section.html
index 7e24facc..4ec8f4ee 100644
--- a/layouts/cards/section.html
+++ b/layouts/cards/section.html
@@ -5,25 +5,7 @@
{{- $cards := .Site.GetPage "section" "cards" }} <!-- 获取 "cards" 部分的内容 -->
{{- $paginator := .Paginate $cards.Pages 10 }} <!-- 对该部分内容进行分页 -->
{{- range $paginator.Pages }}
- <div class="card"
- style="view-transition-name: card-{{ .File.UniqueID }}">
- <div class="card-header">
- <h3 class="card-title">
- <a href="{{ .Permalink }}" class="card-title-link">{{ .Title }}</a>
- </h3>
- {{- if .Params.tags }}
- <p class="card-tags markdown-body">
- {{- range .Params.tags }}
- <a href="{{ "/tags/" | relURL }}{{ . | urlize }}" class="card-tag">#{{ . }}</a>
- {{- end }}
- </p>
- {{- end }}
- </div>
-
- <div class="card-content markdown-body">
- {{ .Summary }}
- </div>
- </div>
+ {{ partial "items/card" (dict "context" . "summary" true) }}
{{- end }}
</div>
diff --git a/layouts/cards/single.html b/layouts/cards/single.html
index d75d1ffa..0b269bca 100644
--- a/layouts/cards/single.html
+++ b/layouts/cards/single.html
@@ -1,34 +1,7 @@
{{ define "main" }}
<article class="card-page">
- <a href="{{ .Site.LanguagePrefix }}/cards"
- class="title-image-container">
- <img src="{{ .Site.Params.images.header }}" alt="Logo"
- class="invert-if-dark title-image"
- style="view-transition-name: title-image"
- />
- </a>
- <div class="card markdown-body post-content"
- style="view-transition-name: card-{{ .File.UniqueID }}">
- <div class="card-header">
- <h3 class="card-title"
- data-pagefind-meta="title"
- data-pagefind-sort="date[data-date], weight[data-weight]"
- data-date="{{ .Date.Format "2006-01-02" }}"
- data-weight="5">
- {{ .Title }}
- </h3>
- {{- if .Params.tags }}
- <p class="card-tags">
- {{- range .Params.tags }}
- <a href="{{ "/tags/" | relURL }}{{ . | urlize }}" class="card-tag">#{{ . }}</a>
- {{- end }}
- </p>
- {{- end }}
- </div>
- <div class="card-content">
- {{ .Content }}
- </div>
- </div>
+ {{ partial "components/logo" (dict "link" "cards") }}
+ {{ partial "items/card" (dict "context" .) }}
{{- /* 查询引用了这个卡片的文章 */ -}}
{{- $currentCard := .File.BaseFileName -}} <!-- 获取当前卡片的文件名 -->
diff --git a/layouts/categories/taxonomy.html b/layouts/categories/taxonomy.html
index 22c99a6d..38b96fdc 100644
--- a/layouts/categories/taxonomy.html
+++ b/layouts/categories/taxonomy.html
@@ -11,7 +11,7 @@
<a class="post-series-item"
href="{{ .link }}"
title="{{ .description }}"
- data-umami-event="Click series link from Banner"
+ data-umami-event="🚩 Click series link from Banner"
>
<div class="post-series-cover">
<img src="{{ .cover }}" />
diff --git a/layouts/categories/term.html b/layouts/categories/term.html
index a1ed5c51..6b647739 100644
--- a/layouts/categories/term.html
+++ b/layouts/categories/term.html
@@ -14,7 +14,7 @@
<ul class="term-list-posts">
{{ range where .Pages "Section" "ne" "cards" }}
<li>
- <a href="{{ .RelPermalink }}" data-umami-event="Click Post Link from Category Page">
+ <a href="{{ .RelPermalink }}" data-umami-event="🗃️ Click Post Link from Category Page">
{{ .Title }}{{ with .Params.subtitle }}:<span class="posts-subtitle">{{. }}</span>
{{ end }}
</a>
diff --git a/layouts/fictions/single.html b/layouts/fictions/single.html
index e16dd4c7..83db7d60 100644
--- a/layouts/fictions/single.html
+++ b/layouts/fictions/single.html
@@ -11,16 +11,7 @@
>
{{ partial "components/banner.html" . }}
<h1 class="post-title" data-pagefind-meta="title">{{ .Title }}</h1>
- <div class="post-meta">
- {{ if .Date }}
- <time class="post-date"
- datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}"
- data-pagefind-sort="date[datetime], weight[data-weight]"
- data-weight="15">
- {{ .Date.Format "2006年1月2日" }}
- </time>
- {{ end }}
- </div>
+ <div class="post-meta">{{ partial "components/date" . }}</div>
</header>
<!-- Post Content -->
diff --git a/layouts/index.html b/layouts/index.html
index abd5a9f7..cc1042fd 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -13,16 +13,14 @@
<header>
<div class="posts-item-meta">
<p class="font-mono">
- <time>
- {{ .Date.Format "Jan 2" }},
- </time>
+ <time>{{ .Date.Format "January 2" }},</time>
<span>in <a href="/{{ .Section }}/">{{ .Section }}</a></span>
</p>
<h2 class="posts-item-title"
{{ if $firstPost }} style="margin-bottom: 0"{{ end }}>
<a
href="{{ .Permalink }}"
- data-umami-event="Click post link from index"
+ data-umami-event="🏠 Click post link from index"
>
{{ if eq .Section "library" }}
读《{{ .Title }}》
@@ -55,7 +53,7 @@
{{ end }}
</div>
<a href="/posts" class="index-section-morelink"
- data-umami-event="Click more posts link">
+ data-umami-event="➕ Click more posts link">
{{ T "moreLinks.posts" }}
</a>
</section>
@@ -67,33 +65,12 @@
{{- $cards := .Site.GetPage "section" "cards" }} <!-- 获取 "cards" 部分的内容 -->
{{- $paginator := .Paginate $cards.Pages 4 }} <!-- 对该部分内容进行分页 -->
{{- range $paginator.Pages }}
- <div class="card"
- style="view-transition-name: card-{{ .File.UniqueID }}">
- <div class="card-header">
- <h3 class="card-title">
- <a
- href="{{ .Permalink }}"
- data-umami-event="Click card link from index"
- class="card-title-link">{{ .Title }}</a>
- </h3>
- {{- if .Params.tags }}
- <p class="card-tags markdown-body">
- {{- range .Params.tags }}
- <a href="{{ "/tags/" | relURL }}{{ . | urlize }}" class="card-tag">#{{ . }}</a>
- {{- end }}
- </p>
- {{- end }}
- </div>
-
- <div class="card-content markdown-body">
- {{ .Summary }}
- </div>
- </div>
+ {{ partial "items/card" (dict "context" . "summary" true) }}
{{- end }}
</div>
<div style="margin: 1rem 0">
<a href="/cards" class="index-section-morelink"
- data-umami-event="Click more cards link">
+ data-umami-event="➕ Click more cards link">
{{ T "moreLinks.cards" }}
</a>
</div>
diff --git a/layouts/library/single.html b/layouts/library/single.html
index fa53149b..1f051da7 100644
--- a/layouts/library/single.html
+++ b/layouts/library/single.html
@@ -5,6 +5,7 @@
style="view-transition-name: book-{{ .File.UniqueID }}">
<img
class="lazy" loading="lazy"
+ data-pagefind-meta="image[src]"
src="{{ .Params.cover }}"
/>
</div>
@@ -21,24 +22,17 @@
</p>
<!-- 导航作用的骷髅头图标 -->
<div>
- <a href="{{ .Site.LanguagePrefix }}/library"
- class="title-image-container">
- <img src="{{ .Site.Params.images.header }}" alt="Logo"
- class="invert-if-dark title-image"
- style="view-transition-name: title-image"
- />
- </a>
+ {{ partial "components/logo" (dict "link" "library") }}
</div>
</div>
<div class="markdown-body book-body">
<div class="book-content">
{{ .Content }}
</div>
+ <!-- Endnotes -->
+ {{ partial "components/endnotes" . }}
<div class="book-footer">
- <p>于 <time
- data-pagefind-sort="date[data-date], weight[data-weight]"
- data-date="{{ .Date.Format "2006-01-02" }}"
- data-weight="10">{{ .Date.Format "2006-01-02" }}</time> 读完</p>
+ <p>于 {{ partial "components/date" . }} 读完</p>
</div>
</div>
{{ partial "components/comment.html" . }}
diff --git a/layouts/partials/components/banner.html b/layouts/partials/components/banner.html
index e14572f4..7ab4c826 100644
--- a/layouts/partials/components/banner.html
+++ b/layouts/partials/components/banner.html
@@ -2,6 +2,7 @@
<div class="post-banner">
<img
class="lazy" loading="lazy"
+ data-pagefind-meta="image[src]"
src="{{ . }}"
>
</div>
diff --git a/layouts/partials/components/category-pill.html b/layouts/partials/components/category-pill.html
new file mode 100644
index 00000000..aeb25747
--- /dev/null
+++ b/layouts/partials/components/category-pill.html
@@ -0,0 +1,8 @@
+{{ with .GetTerms "categories" }}
+ {{ with index . 0 }}
+ <a class="post-category" href="{{ .RelPermalink }}">
+ {{ .Params.icon }}
+ <span>{{ .LinkTitle }}</span>
+ </a>
+ {{ end }}
+{{ end }}
diff --git a/layouts/partials/components/comment.html b/layouts/partials/components/comment.html
index 2bdab023..13fff97e 100644
--- a/layouts/partials/components/comment.html
+++ b/layouts/partials/components/comment.html
@@ -27,11 +27,12 @@
</div>
{{ if eq .Site.Language.Lang "zh" }}
<p class="links-container">
- <a href="https://t.me/teaparty418" target="_blank">
+ <a href="https://t.me/teaparty418" target="_blank"
+ data-umami-event="✈️ Click Telegram link from comment footer">
<img src="/img/telegram.svg" alt="Telegram Logo" />
加入 Telegram 群组参与讨论
</a>
- <a href="/sponsor"><span>💗</span>赞助作者</a>
+ <a href="/sponsor" data-umami-event="💗 Click sponsor button from comment footer"><span>💗</span>赞助作者</a>
</p>
{{ end }}
<!-- giscus script -->
diff --git a/layouts/partials/components/date.html b/layouts/partials/components/date.html
new file mode 100644
index 00000000..1998202f
--- /dev/null
+++ b/layouts/partials/components/date.html
@@ -0,0 +1,26 @@
+{{ if .Date }}
+ {{ $hour := .Date.Hour }}
+ {{ $fuzzyTimes := slice
+ (dict "limit" 5 "label" "凌晨")
+ (dict "limit" 7 "label" "清晨")
+ (dict "limit" 11 "label" "早上")
+ (dict "limit" 13 "label" "中午")
+ (dict "limit" 17 "label" "下午")
+ (dict "limit" 19 "label" "傍晚")
+ (dict "limit" 22 "label" "晚上")
+ }}
+ {{ $fuzzyTime := "深夜" }} {{/* default */}}
+ {{ range $fuzzyTimes }}
+ {{ if lt $hour .limit }}
+ {{ $fuzzyTime = .label }}
+ {{ break }}
+ {{ end }}
+ {{ end }}
+
+ <time class="post-date"
+ datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}"
+ data-pagefind-sort="date[datetime], weight[data-weight]"
+ data-weight="{{ if .Params.featured }}30{{ else }}20{{ end }}">
+ {{ .Date.Format "2006年1月2日" }} {{ $fuzzyTime }}
+ </time>
+{{ end }}
diff --git a/layouts/partials/components/endnotes.html b/layouts/partials/components/endnotes.html
new file mode 100644
index 00000000..e7245ad4
--- /dev/null
+++ b/layouts/partials/components/endnotes.html
@@ -0,0 +1,10 @@
+{{ if .Params.endnotes }}
+<hr>
+<div id="post-endnotes">
+ <ul>
+ {{ range .Params.endnotes }}
+ <li>{{ . | markdownify }}</li>
+ {{ end }}
+ </ul>
+</div>
+{{ end }}
diff --git a/layouts/partials/components/global-search.html b/layouts/partials/components/global-search.html
index ab4ec5ff..d60f2f20 100644
--- a/layouts/partials/components/global-search.html
+++ b/layouts/partials/components/global-search.html
@@ -92,6 +92,8 @@
const turnOn = () => {
search.classList.add("shown");
overlay.classList.add("shown");
+
+ umami.track('🔍 Open search panel')
};
const turnOff = () => {
search.classList.remove("shown");
diff --git a/layouts/partials/components/logo.html b/layouts/partials/components/logo.html
new file mode 100644
index 00000000..36040768
--- /dev/null
+++ b/layouts/partials/components/logo.html
@@ -0,0 +1,10 @@
+{{ $default := "https://image.guhub.cn/uPic/2025/05/header.png" }}
+{{ $link := .link | default "" }}
+{{ $src := .src | default $default }}
+
+<a href="{{ .Site.LanguagePrefix }}/{{ $link }}"
+ class="title-image-container">
+ <img src="{{ $src }}" alt="Logo"
+ class="invert-if-dark title-image"
+ style="view-transition-name: title-image" />
+</a>
diff --git a/layouts/partials/components/now-read-this.html b/layouts/partials/components/now-read-this.html
new file mode 100644
index 00000000..6f2950c2
--- /dev/null
+++ b/layouts/partials/components/now-read-this.html
@@ -0,0 +1,19 @@
+{{ with site.RegularPages.Related . | first 1 }}
+<div class="nrt post-content">
+ <h4 class="nrt-title">{{ T "nowReadThis" }}</h4>
+ {{ range . }}
+ <div class="nrt-header">
+ <a class="nrt-link" href="{{ .RelPermalink }}" data-umami-event="🤔 Click Related Post">
+ {{ .LinkTitle }}
+ {{ with .Params.subtitle }}
+ <span class="nrt-subtitle">:{{ . }}</span>
+ {{ end }}
+ </a>
+ <span class="nrt-reading-time">⏱️ {{ .ReadingTime }}min </span>
+ </div>
+ <div class="nrt-summary">
+ <p>{{ .Summary | plainify }}</p>
+ </div>
+ {{ end }}
+</div>
+{{ end }}
diff --git a/layouts/partials/components/post-page-header.html b/layouts/partials/components/post-page-header.html
index 3c572b45..4363b74c 100644
--- a/layouts/partials/components/post-page-header.html
+++ b/layouts/partials/components/post-page-header.html
@@ -1,10 +1,8 @@
<header id="post-page-header"
class="{{ with .Params.banner }}with-banner{{ end }} {{ if eq .Section "fictions" }}fiction-page-header{{ end }}">
- <a href="{{ .Site.LanguagePrefix }}/{{ if eq .Section "fictions" }}fictions{{ end }}"
- class="title-image-container">
- <img src="{{ if eq .Section "fictions" }}/img/potted-skeleton.svg{{ else }}{{ .Site.Params.images.header }}{{ end }}" alt="Logo"
- class="invert-if-dark title-image"
- style="view-transition-name: title-image"
- />
- </a>
+ {{ if eq .Section "fictions" }}
+ {{ partial "components/logo" (dict "src" "/img/potted-skeleton.svg" "link" "fictions") }}
+ {{ else }}
+ {{ partial "components/logo" }}
+ {{ end }}
</header>
diff --git a/layouts/partials/components/postnav.html b/layouts/partials/components/postnav.html
index 5ada95e2..0174060c 100644
--- a/layouts/partials/components/postnav.html
+++ b/layouts/partials/components/postnav.html
@@ -1,24 +1,25 @@
<div id="posts-list-navigation">
<ul>
<li class="{{ if eq "/" $.Page.RelPermalink }}active{{ end }}">
- <a href="{{ .Site.LanguagePrefix }}/">{{ T "postNav.latest" }}</a>
+ <a data-umami-event="🧭 Click postnav link" href="{{ .Site.LanguagePrefix }}/">{{ T "postNav.latest" }}</a>
</li>
{{ if eq .Site.Language.Lang "zh" }}
<li class="{{ if eq "/featured/" $.Page.RelPermalink }}active{{ end }}">
- <a href="{{ .Site.LanguagePrefix }}/featured">{{ T "postNav.featured" }}</a>
+ <a data-umami-event="🧭 Click postnav link" href="{{ .Site.LanguagePrefix }}/featured">{{ T "postNav.featured" }}</a>
</li>
<li class="{{ if eq "/categories/" $.Page.RelPermalink }}active{{ end }}">
- <a href="{{ .Site.LanguagePrefix }}/categories">{{ T "postNav.categories" }}</a>
+ <a data-umami-event="🧭 Click postnav link" href="{{ .Site.LanguagePrefix }}/categories">{{ T "postNav.categories" }}</a>
</li>
<li class="{{ if eq "/tags/" $.Page.RelPermalink }}active{{ end }}">
- <a href="{{ .Site.LanguagePrefix }}/tags">{{ T "postNav.tags" }}</a>
+ <a data-umami-event="🧭 Click postnav link" href="{{ .Site.LanguagePrefix }}/tags">{{ T "postNav.tags" }}</a>
</li>
{{ end }}
<li id="search-instruction">
<span>{{ T "searchInstruction" }}</span>
</li>
<li class="list-decoration invert-if-dark{{ if eq "/stats/" $.Page.RelPermalink }} active{{ end }}">
- <a href="{{ .Site.LanguagePrefix }}/stats" class="icon-link"><img src="/img/graph.svg" /></a>
+ <a href="{{ .Site.LanguagePrefix }}/stats" class="icon-link"
+ data-umami-event="📈 Click stats page link"><img src="/img/graph.svg" /></a>
<li>
</ul>
</div>
diff --git a/layouts/partials/components/tags.html b/layouts/partials/components/tags.html
new file mode 100644
index 00000000..6ff7f594
--- /dev/null
+++ b/layouts/partials/components/tags.html
@@ -0,0 +1,3 @@
+{{ range .Params.tags }}
+<a class="tag" href="{{ site.LanguagePrefix }}/tags/{{ lower . | urlize }}/">#{{ . }}</a>
+{{ end }}
diff --git a/layouts/partials/components/toc.html b/layouts/partials/components/toc.html
index eb75badd..794328c9 100644
--- a/layouts/partials/components/toc.html
+++ b/layouts/partials/components/toc.html
@@ -1,3 +1,4 @@
+{{ if .Params.toc }}
<div id="toc-container"><div id="toc">{{ .TableOfContents }}</div></div>
<style>
/* toc */
@@ -113,3 +114,4 @@ document.addEventListener('DOMContentLoaded', () => {
headings.forEach(heading => observer.observe(heading));
});
</script>
+{{ end }}
diff --git a/layouts/partials/components/wordCountChart.html b/layouts/partials/components/word-count-chart.html
index 65d0e986..65d0e986 100644
--- a/layouts/partials/components/wordCountChart.html
+++ b/layouts/partials/components/word-count-chart.html
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
index 92e81353..214552d6 100644
--- a/layouts/partials/header.html
+++ b/layouts/partials/header.html
@@ -1,12 +1,7 @@
<header id="site-header">
<!-- Header Title -->
<div class="header-title">
- <a href="{{ .Site.LanguagePrefix }}/">
- <img src="{{ .Site.Params.images.header }}" alt="Logo"
- class="invert-if-dark title-image"
- style="view-transition-name: title-image"
- />
- </a>
+ {{ partial "components/logo" }}
<a class="title-link" href="{{ .Site.LanguagePrefix }}/"
>{{ .Site.Params.headTitle }}</a
>
@@ -16,7 +11,7 @@
<nav class="navigation">
{{ range .Site.Params.nav }}
<div class="navigation-item {{ if strings.Contains $.Page.RelPermalink .link }}active{{ end }}">
- <a href="{{ .link }}" target="{{ .target }}">{{ .name }}</a>
+ <a href="{{ .link }}" target="{{ .target }}" data-umami-event="💊 Click header navigation">{{ .name }}</a>
</div>
{{ end }}
</nav>
@@ -24,7 +19,7 @@
{{- $lang := .Site.Language.Lang -}}
{{- $switch := dict "en" (dict "url" "/zh/" "label" "切换至中文") "zh" (dict "url" "/en/" "label" "Switch to English") -}}
{{- $entry := index $switch $lang -}}
- <a href="{{ $entry.url }}" data-umami-event="Switch Language"
+ <a href="{{ $entry.url }}" data-umami-event="🌍 Switch Language"
class="no-swup" title="{{ $entry.label }}">
{{ partial "snippets/globe-icon" . }}
</a>
diff --git a/layouts/partials/items/card.html b/layouts/partials/items/card.html
new file mode 100644
index 00000000..b8a3c7c1
--- /dev/null
+++ b/layouts/partials/items/card.html
@@ -0,0 +1,18 @@
+{{ $ctx := .context }}
+{{ $showSummary := .summary }}
+<div class="card markdown-body post-content"
+ style="view-transition-name: card-{{ $ctx.File.UniqueID }}">
+ <div class="card-header">
+ <h3 class="card-title"
+ data-pagefind-meta="title"
+ data-pagefind-sort="date[data-date], weight[data-weight]"
+ data-date="{{ .Date.Format "2006-01-02" }}"
+ data-weight="5">
+ <a href="{{ $ctx.RelPermalink }}">{{ $ctx.Title }}</a>
+ </h3>
+ <div class="card-tags">{{ partial "components/tags" $ctx }}</div>
+ </div>
+ <div class="card-content">
+ {{ if $showSummary }}{{ $ctx.Summary }}{{ else }}{{ $ctx.Content }}{{ end }}
+ </div>
+</div>
diff --git a/layouts/posts/single.html b/layouts/posts/single.html
index d31c9f30..7a7051f0 100644
--- a/layouts/posts/single.html
+++ b/layouts/posts/single.html
@@ -16,43 +16,10 @@
</h1>
<!-- Post Meta -->
<div class="post-meta">
- {{ if .Date }}
- {{ $hour := .Date.Hour }}
- {{ $fuzzyTime := "" }}
- {{ if lt $hour 5 }}
- {{ $fuzzyTime = "凌晨" }}
- {{ else if lt $hour 7 }}
- {{ $fuzzyTime = "清晨" }}
- {{ else if lt $hour 11 }}
- {{ $fuzzyTime = "早上" }}
- {{ else if lt $hour 13 }}
- {{ $fuzzyTime = "中午" }}
- {{ else if lt $hour 17 }}
- {{ $fuzzyTime = "下午" }}
- {{ else if lt $hour 19 }}
- {{ $fuzzyTime = "傍晚" }}
- {{ else if lt $hour 23 }}
- {{ $fuzzyTime = "晚上" }}
- {{ else }}
- {{ $fuzzyTime = "深夜" }}
- {{ end }}
-
- <time class="post-date"
- datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}"
- data-pagefind-sort="date[datetime], weight[data-weight]"
- data-weight="{{ if .Params.featured }}30{{ else }}20{{ end }}">
- {{ .Date.Format "2006年1月2日" }} {{ $fuzzyTime }}
- </time>
- {{ end }}
- {{ if or .Params.categories .Params.tags }}
- <span>·</span>
- {{ end }}
- {{ if .Params.categories }}
- <a class="post-category" href="/categories/{{ .Params.categories | urlize }}">{{ .Params.categories }}</a>
- {{ end }}
- {{ range .Params.tags }}
- <a class="post-tag" href="{{ site.LanguagePrefix }}/tags/{{ lower . | urlize }}/">#{{ . }}</a>
- {{ end }}
+ {{ partial "components/date" . }}
+ {{ if or .Params.categories .Params.tags }}<span>·</span>{{ end }}
+ {{ partial "components/category-pill" . }}
+ {{ partial "components/tags" . }}
</div>
</header>
@@ -60,46 +27,18 @@
<div class="post-content markdown-body"
style="view-transition-name: post-content-{{ .File.UniqueID }}">
<!-- TOC -->
- {{ if .Params.toc }}
{{ partial "components/toc" . }}
- {{ end }}
<!-- Content -->
- <div id="post-content">{{ .Content }}</div>
- <!-- Endnotes -->
- {{ if .Params.endnotes }}
- <hr>
- <div id="post-endnotes">
- <ul>
- {{ range .Params.endnotes }}
- <li>{{ . | markdownify }}</li>
- {{ end }}
- </ul>
+ <div id="post-content">
+ {{ .Content }}
</div>
- {{ end }}
+ <!-- Endnotes -->
+ {{ partial "components/endnotes" . }}
</div>
<!-- Comment -->
{{ partial "components/comment.html" . }}
-
<!-- Now Read This -->
- {{ with site.RegularPages.Related . | first 1 }}
- <div class="nrt post-content">
- <h4 class="nrt-title">{{ T "nowReadThis" }}</h4>
- {{ range . }}
- <div class="nrt-header">
- <a class="nrt-link" href="{{ .RelPermalink }}" data-umami-event="Click Related Post">
- {{ .LinkTitle }}
- {{ with .Params.subtitle }}
- <span class="nrt-subtitle">:{{ . }}</span>
- {{ end }}
- </a>
- <span class="nrt-reading-time">⏱️ {{ .ReadingTime }}min </span>
- </div>
- <div class="nrt-summary">
- <p>{{ .Summary | plainify }}</p>
- </div>
- {{ end }}
- </div>
- {{ end }}
+ {{ partial "components/now-read-this.html" . }}
</article>
{{ end }}
diff --git a/layouts/shortcodes/link.html b/layouts/shortcodes/link.html
new file mode 100644
index 00000000..1b9c4f79
--- /dev/null
+++ b/layouts/shortcodes/link.html
@@ -0,0 +1,14 @@
+<a href="{{.Get "link" }}" target="_blank"
+ class="{{ if (.Get "type") }}{{ .Get "type" }}-link{{ else }}blog-link{{ end }}">
+ {{ if and (isset .Params "image") .Params.image }}
+ <div class="link-image">
+ <img src="{{ .Params.image }}" class="no-fancybox" alt="{{ .Params.title }}" />
+ </div>
+ {{ end }}
+ {{ if ne (.Get "type") "podcast" }}
+ <div class="link-content">
+ <h4>{{.Get "title" }}</h4>
+ <p>{{.Get "description" }}</p>
+ </div>
+ {{ end }}
+</a>
diff --git a/layouts/term/term.html b/layouts/term/term.html
index 2ecd7b12..2c9a4d59 100644
--- a/layouts/term/term.html
+++ b/layouts/term/term.html
@@ -9,7 +9,7 @@
<ul class="term-list-posts">
{{ range where .Pages "Section" "not in" (slice "cards" "library") }}
<li>
- <a href="{{ .RelPermalink }}" data-umami-event="Click Post Link from Category Page">
+ <a href="{{ .RelPermalink }}" data-umami-event="🗃️ Click Post Link from Category Page">
{{ .Title }}{{ with .Params.subtitle }}:<span class="posts-subtitle">{{. }}</span>
{{ end }}
</a>
@@ -28,7 +28,7 @@
{{ range $cards }}
<div class="card">
<h3>
- <a href="{{ .RelPermalink }}" data-umami-event="Click Card Link from Category Page">
+ <a href="{{ .RelPermalink }}" data-umami-event="🗃️ Click Card Link from Category Page">
{{ .Title }}
</a>
</h3>