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 {