summaryrefslogtreecommitdiff
path: root/layouts
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-03-27 13:10:06 +0800
committerEltrac <hi@guhub.cn>2025-03-27 13:10:06 +0800
commit83f509dd79c381a8bb1254a5de14568c61bb92e2 (patch)
treeedf57e3b77b0ae2933de06dabf0167c0621f78b8 /layouts
parent6576dc46469cdf1fb25cedf2699fe4ba7002a5ef (diff)
feat: add library section
Diffstat (limited to 'layouts')
-rw-r--r--layouts/_default/single.html4
-rw-r--r--layouts/library/section.html14
-rw-r--r--layouts/library/single.html25
-rw-r--r--layouts/partials/components/comment.html66
-rw-r--r--layouts/shortcodes/bookcard.html27
5 files changed, 101 insertions, 35 deletions
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 13c56ada..f22f8d6b 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -57,7 +57,9 @@
{{ end }}
</div>
- {{ partial "components/comment.html" . }}
+ {{ if in .Site.Params.mainSections .Type }}
+ {{ partial "components/comment.html" . }}
+ {{ end }}
<script src="/js/tocbot.min.js"></script>
<script>
diff --git a/layouts/library/section.html b/layouts/library/section.html
new file mode 100644
index 00000000..834717e7
--- /dev/null
+++ b/layouts/library/section.html
@@ -0,0 +1,14 @@
+{{ define "main" }}
+ {{ partial "header.html" . }}
+ <article id="library">
+ <div id="library-content">
+ {{- range .Pages }}
+ <div class="book">
+ <a href="{{ .Permalink }}" class="book-cover" style="view-transition-name: book-{{ .Title }}">
+ <img src="{{ .Params.cover }}" />
+ </a>
+ </div>
+ {{- end }}
+ </div>
+ </article>
+{{ end }}
diff --git a/layouts/library/single.html b/layouts/library/single.html
new file mode 100644
index 00000000..f633c5f4
--- /dev/null
+++ b/layouts/library/single.html
@@ -0,0 +1,25 @@
+{{ define "main" }}
+ <article id="book-page">
+ {{ partial "components/breadcrumbs.html" . }}
+ <div class="markdown-body book-body">
+ <div class="book-cover">
+ <img src="{{ .Params.cover }}" />
+ </div>
+ <h3 class="book-title">{{ .Title }}</h3>
+
+ {{- $rating := .Params.rating -}}
+ {{- $fullStars := math.Floor $rating -}}
+ <div class="rating">
+ <span>评分:</span>
+ {{- range seq $fullStars }}
+ <span class="star">★</span>
+ {{- end -}}
+ </div>
+
+ <div class="book-content">
+ {{ .Content }}
+ </div>
+ </div>
+ {{ partial "components/comment.html" . }}
+ </article>
+{{ end }}
diff --git a/layouts/partials/components/comment.html b/layouts/partials/components/comment.html
index ce240e45..f5ec95d3 100644
--- a/layouts/partials/components/comment.html
+++ b/layouts/partials/components/comment.html
@@ -1,34 +1,32 @@
-{{ if in .Site.Params.mainSections .Type }}
- <div class="post-comments">
- {{ with .Params.comments }}
- <div class="static-comments">
- <p class="static-comments-heading">{{ T "postPage.staticCommentsSectionHeader" }}</p>
- {{ range . }}
- <div class="static-comments-item">
- <div class="static-comments-item-header">
- <span class="comment-author">{{ .name }}</span>
- <span class="comment-date font-mono">{{ .date }}</span>
- </div>
- <div class="static-comments-item-content">
- {{ .content | safeHTML }}
- </div>
- <div class="static-comments-item-footer">
- {{ with .source }}
- <p class="font-mono">{{ T "postPage.originallyPostedOn" . }}</p>
- {{ end }}
- </div>
- </div>
- {{ end }}
- </div>
- {{ end }}
- <div class="giscus">
- <p style="text-align:center">
- {{ T "postPage.commentNotLoaded" }}
- </p>
- </div>
- {{ if eq .Site.Language.Lang "zh" }}
- <p style="text-align:center">你也可以加入本站的 <a href="https://t.me/teaparty418" target="_blank">Telegram 群组</a>参与讨论</p>
- {{ end }}
- <script>loadGiscus()</script>
- </div>
-{{ end }}
+<div class="post-comments">
+ {{ with .Params.comments }}
+ <div class="static-comments">
+ <p class="static-comments-heading">{{ T "postPage.staticCommentsSectionHeader" }}</p>
+ {{ range . }}
+ <div class="static-comments-item">
+ <div class="static-comments-item-header">
+ <span class="comment-author">{{ .name }}</span>
+ <span class="comment-date font-mono">{{ .date }}</span>
+ </div>
+ <div class="static-comments-item-content">
+ {{ .content | safeHTML }}
+ </div>
+ <div class="static-comments-item-footer">
+ {{ with .source }}
+ <p class="font-mono">{{ T "postPage.originallyPostedOn" . }}</p>
+ {{ end }}
+ </div>
+ </div>
+ {{ end }}
+ </div>
+ {{ end }}
+ <div class="giscus">
+ <p style="text-align:center">
+ {{ T "postPage.commentNotLoaded" }}
+ </p>
+ </div>
+ {{ if eq .Site.Language.Lang "zh" }}
+ <p style="text-align:center">你也可以加入本站的 <a href="https://t.me/teaparty418" target="_blank">Telegram 群组</a>参与讨论</p>
+ {{ end }}
+ <script>loadGiscus()</script>
+</div>
diff --git a/layouts/shortcodes/bookcard.html b/layouts/shortcodes/bookcard.html
new file mode 100644
index 00000000..fd7f81df
--- /dev/null
+++ b/layouts/shortcodes/bookcard.html
@@ -0,0 +1,27 @@
+{{- $book := .Site.GetPage (printf "library/%s" (.Get 0)) -}}
+
+{{- if $book }}
+ <div class="markdown-body book-body">
+ <div class="book-cover">
+ <img class="no-fancybox" src="{{ $book.Params.cover }}" />
+ </div>
+ <h3 class="book-title">
+ <a href="{{ $book.Permalink }}">{{ $book.Title }}</a>
+ </h3>
+
+ {{- $rating := $book.Params.rating -}}
+ {{- $fullStars := math.Floor $rating -}}
+ <div class="rating">
+ <span>评分:</span>
+ {{- range seq $fullStars }}
+ <span class="star">★</span>
+ {{- end -}}
+ </div>
+
+ <div class="book-content">
+ {{ $book.Content }}
+ </div>
+ </div>
+{{- else }}
+ <p style="color: red;">⚠️ 无法找到书评: {{ .Get 0 }}</p>
+{{- end }}