diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index 1286668a..99834511 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -38,6 +38,7 @@ export default defineUserConfig({ // }, notes, navbar: [ + { text: 'Blog', link: '/blog/', activeMatch: '/blog/' }, { text: 'VuePress', items: [ @@ -57,7 +58,7 @@ export default defineUserConfig({ ], footer: { copyright: 'Copyright © 2022-present pengzhanbo', - content: '', + message: '', }, themePlugins: { search: { diff --git a/docs/.vuepress/public/images/bg-home.jpg b/docs/.vuepress/public/images/bg-home.jpg new file mode 100644 index 00000000..f3ff127e Binary files /dev/null and b/docs/.vuepress/public/images/bg-home.jpg differ diff --git a/docs/README.md b/docs/README.md index fee6a896..19d4dede 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,17 @@ --- home: true -banner: /images/big-banner.jpg -motto: 世间的美好总是不期而遇,恬静而自然。 -author: pengzhanbo -createTime: 2022/03/26 07:46:50 +banner: /images/bg-home.jpg +hero: + name: 鹏展博 + profession: 前端开发工程师 + text: 简单介绍专业技能信息相关的描述 + actions: + - + theme: brand + text: Blog + link: / + - + theme: alt + text: Github + link: / --- diff --git a/docs/home-banner.jpg b/docs/home-banner.jpg new file mode 100644 index 00000000..f81731a9 Binary files /dev/null and b/docs/home-banner.jpg differ diff --git a/docs/package.json b/docs/package.json index 70718ebb..8ee7ef97 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,7 +5,7 @@ "scripts": { "docs:build": "vuepress-cli build --clean-cache", "docs:clean": "rimraf .vuepress/.temp .vuepress/.cache .vuepress/dist", - "docs:dev": "vuepress-cli dev --clean-cache", + "docs:dev": "vuepress-cli dev --clean-cache --clean-temp", "docs:serve": "anywhere -s -h localhost -d .vuepress/dist" }, "dependencies": { diff --git a/packages/plugin-blog-data/src/node/prepareBlogData.ts b/packages/plugin-blog-data/src/node/prepareBlogData.ts index a01ec840..ed045732 100644 --- a/packages/plugin-blog-data/src/node/prepareBlogData.ts +++ b/packages/plugin-blog-data/src/node/prepareBlogData.ts @@ -1,4 +1,4 @@ -import type { App } from '@vuepress/core' +import type { App, Page } from '@vuepress/core' import type { BlogPostData, BlogPostDataItem } from '../shared/index.js' import type { PluginOption } from './plugin.js' @@ -21,6 +21,8 @@ const getTimestamp = (time: Date): number => { return new Date(time).getTime() } +const EXCERPT_SPLIT = '' + export const preparedBlogData = async ( app: App, pageFilter: (id: string) => boolean, @@ -45,7 +47,7 @@ export const preparedBlogData = async ( }) } - const blogData: BlogPostData = pages.map((page) => { + const blogData: BlogPostData = pages.map((page: Page) => { let extended: Partial = {} if (typeof options.extendBlogData === 'function') { extended = options.extendBlogData(page) @@ -56,7 +58,10 @@ export const preparedBlogData = async ( ...extended, } - if (options.excerpt) data.excerpt = (page as any).excerpt + if (options.excerpt && page.contentRendered.includes(EXCERPT_SPLIT)) { + const contents = page.contentRendered.split(EXCERPT_SPLIT) + data.excerpt = contents[0] + } return data as BlogPostDataItem }) diff --git a/packages/plugin-blog-data/src/shared/index.ts b/packages/plugin-blog-data/src/shared/index.ts index a8bae2cd..adcc2d67 100644 --- a/packages/plugin-blog-data/src/shared/index.ts +++ b/packages/plugin-blog-data/src/shared/index.ts @@ -3,7 +3,7 @@ export interface BlogDataPluginOptions { exclude?: string | string[] sortBy?: 'createTime' | false | ((prev: T, next: T) => boolean) excerpt?: boolean - extendBlogData?: (page: T) => Partial + extendBlogData?: (page: T) => Record } export type BlogPostData = BlogPostDataItem[] diff --git a/packages/plugin-notes-data/src/node/prepareNotesData.ts b/packages/plugin-notes-data/src/node/prepareNotesData.ts index 6795c729..caa73e94 100644 --- a/packages/plugin-notes-data/src/node/prepareNotesData.ts +++ b/packages/plugin-notes-data/src/node/prepareNotesData.ts @@ -94,7 +94,6 @@ export const watchNotesData = ( } function initSidebar(note: NotesItem, pages: NotePage[]): NotesSidebarItem[] { - console.log('pages:', pages) if (!note.sidebar) return [] if (note.sidebar === 'auto') return [] return initSidebarByConfig(note, pages) @@ -105,7 +104,6 @@ function initSidebarByConfig( pages: NotePage[] ): NotesSidebarItem[] { return (sidebar as NotesSidebar).map((item) => { - console.log('text: ', text, 's-item: ', item, 'dir: ', dir) if (typeof item === 'string') { const current = findNotePage(item, dir, pages) return { diff --git a/packages/theme/src/client/components/Backdrop.vue b/packages/theme/src/client/components/Backdrop.vue new file mode 100644 index 00000000..94bc0567 --- /dev/null +++ b/packages/theme/src/client/components/Backdrop.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/packages/theme/src/client/components/Blog.vue b/packages/theme/src/client/components/Blog.vue new file mode 100644 index 00000000..fd6f311e --- /dev/null +++ b/packages/theme/src/client/components/Blog.vue @@ -0,0 +1,34 @@ + + + + diff --git a/packages/theme/src/client/components/BlogAvatar.vue b/packages/theme/src/client/components/BlogAvatar.vue new file mode 100644 index 00000000..1ba61122 --- /dev/null +++ b/packages/theme/src/client/components/BlogAvatar.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/packages/theme/src/client/components/BlogPage.vue b/packages/theme/src/client/components/BlogPage.vue deleted file mode 100644 index de33f312..00000000 --- a/packages/theme/src/client/components/BlogPage.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - diff --git a/packages/theme/src/client/components/Home.vue b/packages/theme/src/client/components/Home.vue index db49aad6..f70353f5 100644 --- a/packages/theme/src/client/components/Home.vue +++ b/packages/theme/src/client/components/Home.vue @@ -1,3 +1,138 @@ + + + diff --git a/packages/theme/src/client/components/LayoutContent.vue b/packages/theme/src/client/components/LayoutContent.vue index ac9d8d61..37ae20e7 100644 --- a/packages/theme/src/client/components/LayoutContent.vue +++ b/packages/theme/src/client/components/LayoutContent.vue @@ -4,7 +4,11 @@ import { useSidebar } from '../composables/index.js' const { hasSidebar } = useSidebar() diff --git a/packages/theme/src/client/components/LocalNav.vue b/packages/theme/src/client/components/LocalNav.vue new file mode 100644 index 00000000..3a7b5fa6 --- /dev/null +++ b/packages/theme/src/client/components/LocalNav.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/packages/theme/src/client/components/Nav/NavBar.vue b/packages/theme/src/client/components/Nav/NavBar.vue index 4b26fb1c..bd517d53 100644 --- a/packages/theme/src/client/components/Nav/NavBar.vue +++ b/packages/theme/src/client/components/Nav/NavBar.vue @@ -6,6 +6,7 @@ import NavBarAppearance from './NavBarAppearance.vue' import NavBarExtra from './NavBarExtra.vue' import NavBarHamburger from './NavBarHamburger.vue' import NavBarMenu from './NavBarMenu.vue' +import NavBarSearch from './NavBarSearch.vue' import NavBarSocialLinks from './NavBarSocialLinks.vue' import NavBarTitle from './NavBarTitle.vue' @@ -35,7 +36,7 @@ const classes = computed(() => ({
- +