From 3b4d3195bd60d6e0c1e4259eb208acdf56849d1f Mon Sep 17 00:00:00 2001 From: QIU Date: Tue, 26 Aug 2025 02:50:07 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=B3=BB=E5=88=97=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astro.config.mjs | 2 +- src/components/widget/Series.astro | 51 +++++++++++++++++++++++++++++ src/components/widget/SideBar.astro | 6 ++++ src/content/config.ts | 1 + src/i18n/i18nKey.ts | 1 + src/i18n/languages/en.ts | 1 + src/i18n/languages/es.ts | 1 + src/i18n/languages/ja.ts | 1 + src/i18n/languages/ko.ts | 1 + src/i18n/languages/th.ts | 1 + src/i18n/languages/zh_CN.ts | 1 + src/i18n/languages/zh_TW.ts | 1 + src/layouts/MainGridLayout.astro | 3 +- src/pages/posts/[...slug].astro | 2 +- src/types/config.ts | 1 + src/utils/content-utils.ts | 19 +++++++++++ 16 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 src/components/widget/Series.astro diff --git a/astro.config.mjs b/astro.config.mjs index 580591f..f246ddb 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -39,7 +39,7 @@ export default defineConfig({ animationClass: "transition-swup-", // see https://swup.js.org/options/#animationselector // the default value `transition-` cause transition delay // when the Tailwind class `transition-all` is used - containers: ["main", "#toc"], + containers: ["main", "#toc", "#series"], smoothScrolling: true, cache: true, preload: true, diff --git a/src/components/widget/Series.astro b/src/components/widget/Series.astro new file mode 100644 index 0000000..413b629 --- /dev/null +++ b/src/components/widget/Series.astro @@ -0,0 +1,51 @@ +--- +import I18nKey from '../../i18n/i18nKey' +import { i18n } from '../../i18n/translation' +import { getPostSeries } from '../../utils/content-utils' +import { getPostUrlBySlug } from '../../utils/url-utils' +import WidgetLayout from './WidgetLayout.astro' + +const COLLAPSED_HEIGHT = '7.5rem' + +interface Props { + class?: string + style?: string + series: string +} +const className = Astro.props.class +const style = Astro.props.style +const seriesName = Astro.props.series + +const series = await getPostSeries(seriesName) + +const isCollapsed = series.length >= 10 +--- + +
+ {series.map(t => ( + + +
+
+
+ +
+ {t.data.title} +
+
+ ))} +
+
\ No newline at end of file diff --git a/src/components/widget/SideBar.astro b/src/components/widget/SideBar.astro index f3bafc2..43fd117 100644 --- a/src/components/widget/SideBar.astro +++ b/src/components/widget/SideBar.astro @@ -3,19 +3,25 @@ import type { MarkdownHeading } from "astro"; import Categories from "./Categories.astro"; import Profile from "./Profile.astro"; import Tag from "./Tags.astro"; +import Series from './Series.astro' interface Props { class?: string; headings?: MarkdownHeading[]; + series?: string } const className = Astro.props.class; +const series = Astro.props.series ---