diff --git a/src/client/app/exports.ts b/src/client/app/exports.ts index f806e333..29242136 100644 --- a/src/client/app/exports.ts +++ b/src/client/app/exports.ts @@ -2,7 +2,6 @@ // so the user can do `import { useRoute, useSiteData } from 'vitepress'` // generic types -export type { SiteData, PageData } from '/@types/shared' export type { Router, Route } from './router' // theme types @@ -25,3 +24,6 @@ import { ComponentOptions } from 'vue' import _Debug from './components/Debug.vue' const Debug = _Debug as ComponentOptions export { Debug } + +// default theme +export { default as defaultTheme } from '/@default-theme/index' diff --git a/src/client/tsconfig.json b/src/client/tsconfig.json index 28c9b9c6..a05dc55d 100644 --- a/src/client/tsconfig.json +++ b/src/client/tsconfig.json @@ -8,6 +8,7 @@ "types": ["vite"], "paths": { "/@theme/*": ["theme-default/*"], + "/@default-theme/*": ["theme-default/*"], "/@shared/*": ["shared/*"], "/@types/*": ["../../types/*"], "vitepress": ["app/exports.ts"] diff --git a/src/node/config.ts b/src/node/config.ts index f59cefda..6f1ce672 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -2,7 +2,7 @@ import path from 'path' import fs from 'fs-extra' import chalk from 'chalk' import globby from 'globby' -import { createResolver, APP_PATH } from './resolver' +import { createResolver, APP_PATH, DEFAULT_THEME_PATH } from './resolver' import { Resolver } from 'vite' import { SiteData, HeadConfig, LocaleConfig } from '../../types/shared' import { MarkdownOptions } from './markdown/markdown' @@ -48,7 +48,7 @@ export async function resolveConfig( const userThemeDir = resolve(root, 'theme') const themeDir = (await fs.pathExists(userThemeDir)) ? userThemeDir - : path.join(__dirname, '../client/theme-default') + : DEFAULT_THEME_PATH const config: SiteConfig = { root, diff --git a/src/node/resolver.ts b/src/node/resolver.ts index 6ac5afc2..5c829011 100644 --- a/src/node/resolver.ts +++ b/src/node/resolver.ts @@ -4,6 +4,10 @@ import { UserConfig } from './config' export const APP_PATH = path.join(__dirname, '../client/app') export const SHARED_PATH = path.join(__dirname, '../client/shared') +export const DEFAULT_THEME_PATH = path.join( + __dirname, + '../client/theme-default' +) // special virtual file // we can't directly import '/@siteData' becase @@ -25,6 +29,7 @@ export function createResolver( ...userConfig.alias, '/@app/': APP_PATH, '/@theme/': themeDir, + '/@default-theme/': DEFAULT_THEME_PATH, '/@shared/': SHARED_PATH, vitepress: '/@app/exports.js', [SITE_DATA_ID]: SITE_DATA_REQUEST_PATH diff --git a/types/index.d.ts b/types/index.d.ts index 6ad16f17..fb753f96 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -2,3 +2,4 @@ export * from './shared' export * from '../dist/node/index' export * from '../dist/client/app/exports' export * from '../dist/client/theme-default/config' +export { default as defaultTheme } from '../dist/client/theme-default/index'