Files
blog/themes/Ying/layouts/partials/about-intro.html
T
zqlit ac7ad23e8c edit(关于页): 移植写作后台对旧版的三处文案 —— 工作/源码/主题说明
后台 18:25 的两笔编辑是对旧版页面做的;rebase 冲突解决时新版结构已胜出,
其中用户亲手更新的三条事实信息不能丢:工作:牛马打工人(01 属性加一行)、
源码:Ying 原版 GitHub heysiu/Ying(02 新增一行)、主题二开自用不开源(02 框架行改写)。
2026-10-07 21:46:12 +08:00

112 lines
6.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{{/* 关于页 · B+C 方案:时间线(B) + 数据一览(C)
────────────────────────────────────────────────────────────────
数据全部在构建期从 content/ 实时统计,不依赖任何外部接口:
· 篇数 / 年数 / 站龄 → .Site.RegularPages 与最早文章日期
· 分类占比 → .Site.Taxonomies.categories
· 热力图 → 由 heatmap.html 提供(本 partial 不重复渲染)
★ 时间线节点写在下方 $nodes 里,改文案只动那一处。
──────────────────────────────────────────────────────────────── */}}
{{- $posts := where .Site.RegularPages "Type" "posts" -}}
{{/* ── 统计:总篇数 ── */}}
{{- $total := len $posts -}}
{{/* ── 统计:首篇日期与年数 ──
用最早的一篇(ByDate 升序后的 index 0)作为起点,算站龄。 */}}
{{- $ordered := $posts.ByDate -}}
{{- $first := index $ordered 0 -}}
{{- $firstYear := $first.Date.Format "2006" -}}
{{- $nowYear := now.Format "2006" -}}
{{- $spanYears := sub (int $nowYear) (int $firstYear) -}}
{{/* ── 统计:今年更新篇数(当年发文数) ── */}}
{{- $thisYear := len (where $posts "Date.Year" (int $nowYear)) -}}
{{/* ── 统计:分类占比(取前 5,按篇数降序) ── */}}
{{- $cats := slice -}}
{{- with .Site.Taxonomies.categories -}}
{{- range . -}}
{{- $cats = $cats | append (dict "name" .Page.LinkTitle "count" (len .Pages)) -}}
{{- end -}}
{{- end -}}
{{- $cats = sort $cats "count" "desc" -}}
{{- $top := first 5 $cats -}}
{{- $maxC := 1 -}}
{{- with $top }}{{ $maxC = (index . 0).count }}{{ end -}}
{{/* ── 时间线节点 ──
想改文案/加节点,只改这个数组即可。isNow = true 的节点会画成实心圆点。 */}}
{{- $nodes := slice
(dict "when" "2020 · 起点"
"title" "在襄阳,给博客开了个头"
"body" "高考完的那个夏天,怀揣着对互联网的好奇搭了这个小站。第一篇文章还留在归档里。"
"isNow" false)
(dict "when" "2021 — 2024 · 折腾"
"title" "换主题、磨 CSS、把 Typecho 拆了个遍"
"body" "那时候不懂代码,到处找教程,把好好的主题改得面目全非,但乐在其中。"
"isNow" false)
(dict "when" "2025 · 做减法"
"title" "从 Typecho 搬到 Hugo"
"body" "文章多了才明白,博客的本质是内容,不是花哨的外表。"
"isNow" false)
(dict "when" "此刻 · 在广州"
"title" "毕业两年,深漂广漂中"
"body" "不活跃就是在跟生活对线。想去南京落脚,先把手里的事做好。"
"isNow" true)
-}}
<!-- ─────────── 01 / 关于我(属性 + 时间线 · 方案 B) ───────────
动效:与归档页 page/archives.html 完全同源的官方写法:
· target 用后代选择器(不写 `>`,避免结构耦合选不中)
· 动画类用官方 uk-animation-slide-*-medium(50px 位移,看得清)
· repeat: true —— 每次滚进视口都重播(归档页年份标题同款),
这是「滚动时页面是活的」的关键;hidden 用默认值
· delay 官方语义:同一批进视口的 target 依次累加 → 自动错落 -->
<div class="ab-attrs" uk-scrollspy="target: .ab-attr; cls: uk-animation-slide-bottom-medium; delay: 80; repeat: true">
<div class="ab-attr"><span class="k">坐标</span><span class="v">湖北 · 襄阳 → 广州</span></div>
<div class="ab-attr"><span class="k">其人</span><span class="v">00 后,性格随和,风趣幽默</span></div>
<div class="ab-attr"><span class="k">打算</span><span class="v">未来计划定居江苏南京</span></div>
<div class="ab-attr"><span class="k">工作</span><span class="v">牛马打工人</span></div>
<div class="ab-attr"><span class="k">近况</span><span class="v">深漂广漂中,不活跃就是在跟生活对线</span></div>
</div>
<!-- 时间线:节点自左向右滑入(官方 slide-right-medium),四点次第点亮 -->
<div class="ab-tl" uk-scrollspy="target: .ab-item; cls: uk-animation-slide-right-medium; delay: 110; repeat: true">
{{- range $nodes }}
<div class="ab-item{{ if .isNow }} is-now{{ end }}">
<div class="ab-when">{{ .when }}</div>
<p class="ab-h">{{ .title }}</p>
<p class="ab-p">{{ .body }}</p>
</div>
{{- end }}
</div>
<!-- ─────────── 02 / 数据一览(方案 C) ───────────
三张数据卡依次自下浮起(官方 slide-bottom-medium)。 -->
<div class="ab-stats" uk-scrollspy="target: .ab-stat; cls: uk-animation-slide-bottom-medium; delay: 120; repeat: true">
<div class="ab-stat"><span class="n">{{ $total }}</span><span class="l">篇文章</span></div>
<div class="ab-stat"><span class="n">{{ $spanYears }}</span><span class="l">年积累</span></div>
<div class="ab-stat"><span class="n">{{ $thisYear }}</span><span class="l">今年更新</span></div>
</div>
{{- if $top }}
<!-- 分类条:条体浮起,条内填充宽度由 CSS transition 从 0 长出(UIKit 不管宽度)。
★ 目标宽度写进内联 --ab-bar-w,CSS 在 .uk-scrollspy-inview 时放行;
repeat 移出视口时类被摘掉 → 宽度回到 0,下次滚进重新长出。 -->
<div class="ab-bars" uk-scrollspy="target: .ab-bar; cls: uk-animation-slide-bottom-medium; delay: 60; repeat: true">
{{- range $top }}
{{- $pct := div (mul .count 100) $maxC }}
<div class="ab-bar" style="--ab-bar-w: {{ $pct }}%;">
<span class="n">{{ .name }}</span>
<span class="t"><i></i></span>
<span class="c">{{ .count }}</span>
</div>
{{- end }}
</div>
<p class="ab-footnote">
首篇发布于 {{ $first.Date.Format "2006 年 1 月" }} · 以上统计在构建时实时生成
</p>
{{- end }}