diff --git a/packages/theme/src/client/composables/useDarkMode.ts b/packages/theme/src/client/composables/darkMode.ts similarity index 97% rename from packages/theme/src/client/composables/useDarkMode.ts rename to packages/theme/src/client/composables/darkMode.ts index 97d049fe..2e76b835 100644 --- a/packages/theme/src/client/composables/useDarkMode.ts +++ b/packages/theme/src/client/composables/darkMode.ts @@ -1,7 +1,7 @@ import { usePreferredDark, useStorage } from '@vueuse/core' import { computed, inject, onMounted, onUnmounted, provide, watch } from 'vue' import type { InjectionKey, WritableComputedRef } from 'vue' -import { useThemeLocaleData } from './useThemeData.js' +import { useThemeLocaleData } from './themeData.js' export type DarkModeRef = WritableComputedRef diff --git a/packages/theme/src/client/composables/index.ts b/packages/theme/src/client/composables/index.ts index 7021f731..4dfbe520 100644 --- a/packages/theme/src/client/composables/index.ts +++ b/packages/theme/src/client/composables/index.ts @@ -1,4 +1,4 @@ -export * from './useDarkMode.js' +export * from './darkMode.js' export * from './useScrollPromise.js' -export * from './useThemeData.js' +export * from './themeData.js' export * from './useResolveRouteWithRedirect.js' diff --git a/packages/theme/src/client/composables/useThemeData.ts b/packages/theme/src/client/composables/themeData.ts similarity index 100% rename from packages/theme/src/client/composables/useThemeData.ts rename to packages/theme/src/client/composables/themeData.ts diff --git a/packages/theme/src/client/index.ts b/packages/theme/src/client/index.ts index e69de29b..72593733 100644 --- a/packages/theme/src/client/index.ts +++ b/packages/theme/src/client/index.ts @@ -0,0 +1 @@ +export * from '../shared/index.js' diff --git a/packages/theme/src/client/shim.d.ts b/packages/theme/src/client/shim.d.ts index bf554924..91c813d9 100644 --- a/packages/theme/src/client/shim.d.ts +++ b/packages/theme/src/client/shim.d.ts @@ -3,3 +3,5 @@ declare module '*.vue' { const comp: ComponentOptions export default comp } + +declare const __VUEPRESS_DEV__: string diff --git a/packages/theme/src/node/autoFrontmatter.ts b/packages/theme/src/node/autoFrontmatter.ts index 9fd601ae..06dc356d 100644 --- a/packages/theme/src/node/autoFrontmatter.ts +++ b/packages/theme/src/node/autoFrontmatter.ts @@ -1,6 +1,7 @@ import { createRequire } from 'node:module' import type { AutoFrontmatterOptions } from '@vuepress-plume/vuepress-plugin-auto-frontmatter' import type { App } from '@vuepress/core' +import { format } from 'date-fns' import type { PlumeThemeLocaleOptions } from '../shared/index.js' export default function ( @@ -21,13 +22,21 @@ export default function ( { include: '*', formatter: { + title(title: string) { + if (title) return title + return title + }, author(author: string) { if (author) return author - return pkg.author || '' + return localeOption.avatar?.name || pkg.author || '' }, - createTime(formatTime: string, data, { createTime }) { + createTime(formatTime: string, _, { createTime }) { if (formatTime) return formatTime - return createTime + return format(new Date(createTime), 'yyyy/MM/dd hh:mm:ss') + }, + permalink(permalink: string, _, { filepath }) { + if (permalink) return permalink + return permalink }, }, }, diff --git a/packages/theme/src/shared/base.ts b/packages/theme/src/shared/base.ts new file mode 100644 index 00000000..78ef99c4 --- /dev/null +++ b/packages/theme/src/shared/base.ts @@ -0,0 +1,4 @@ +export type PlumeThemeImage = + | string + | { src: string; alt?: string } + | { dark: string; light: string; alt?: string } diff --git a/packages/theme/src/shared/index.ts b/packages/theme/src/shared/index.ts index f15365c2..ea6df6fd 100644 --- a/packages/theme/src/shared/index.ts +++ b/packages/theme/src/shared/index.ts @@ -1,3 +1,4 @@ +export * from './base.js' export * from './frontmatter.js' export * from './note.js' export * from './options/index.js'