From 616672fa59a189b319678b657996f79fd0de16a0 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Tue, 26 Dec 2023 21:59:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=B8=8B=E5=8D=9A=E5=AE=A2=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=A1=B5=20avatar=20UI=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- theme/src/client/components/Blog.vue | 2 + theme/src/client/components/BlogExtract.vue | 156 ++++++++++++++++++ theme/src/client/components/PostList.vue | 4 +- .../client/components/icons/IconBlogExt.vue | 3 + theme/src/client/composables/blog.ts | 2 +- theme/src/client/styles/content.scss | 4 +- 6 files changed, 167 insertions(+), 4 deletions(-) create mode 100644 theme/src/client/components/BlogExtract.vue create mode 100644 theme/src/client/components/icons/IconBlogExt.vue diff --git a/theme/src/client/components/Blog.vue b/theme/src/client/components/Blog.vue index 7432ed94..455b19ae 100644 --- a/theme/src/client/components/Blog.vue +++ b/theme/src/client/components/Blog.vue @@ -3,6 +3,7 @@ import { usePageData } from '@vuepress/client' import type { PlumeThemePageData } from '../../shared/index.js' import Archives from './Archives.vue' import BlogAside from './BlogAside.vue' +import BlogExtract from './BlogExtract.vue' import PostList from './PostList.vue' import Tags from './Tags.vue' @@ -15,6 +16,7 @@ const page = usePageData() + diff --git a/theme/src/client/components/BlogExtract.vue b/theme/src/client/components/BlogExtract.vue new file mode 100644 index 00000000..ec352316 --- /dev/null +++ b/theme/src/client/components/BlogExtract.vue @@ -0,0 +1,156 @@ + + + + diff --git a/theme/src/client/components/PostList.vue b/theme/src/client/components/PostList.vue index 509d424d..8cf78293 100644 --- a/theme/src/client/components/PostList.vue +++ b/theme/src/client/components/PostList.vue @@ -17,11 +17,11 @@ const {
diff --git a/theme/src/client/components/icons/IconBlogExt.vue b/theme/src/client/components/icons/IconBlogExt.vue new file mode 100644 index 00000000..f1ef3b94 --- /dev/null +++ b/theme/src/client/components/icons/IconBlogExt.vue @@ -0,0 +1,3 @@ + diff --git a/theme/src/client/composables/blog.ts b/theme/src/client/composables/blog.ts index a2221f3b..5a53e272 100644 --- a/theme/src/client/composables/blog.ts +++ b/theme/src/client/composables/blog.ts @@ -56,7 +56,7 @@ export const usePostListControl = () => { const changePage = (offset: number) => { page.value += offset - window.scrollTo({ top: 0, left: 0, behavior: 'smooth' }) + window.scrollTo({ top: 0, left: 0, behavior: 'instant' }) } return { diff --git a/theme/src/client/styles/content.scss b/theme/src/client/styles/content.scss index f0a33a07..03f6fd73 100644 --- a/theme/src/client/styles/content.scss +++ b/theme/src/client/styles/content.scss @@ -120,11 +120,13 @@ text-underline-offset: 2px; transition: color 0.25s, - opacity 0.25s; + opacity 0.25s, + text-underline-offset 0.25s; } .plume-content a:hover { color: var(--vp-c-brand-2); + text-underline-offset: 4px; } .plume-content strong {