diff --git a/docs/config.ts b/docs/config.ts index 6f959538..b4cc4d2a 100644 --- a/docs/config.ts +++ b/docs/config.ts @@ -1,10 +1,10 @@ import { createRequire } from 'module' -import { defineConfig, type DefaultTheme } from 'vitepress' +import { defineAdditionalConfig, type DefaultTheme } from 'vitepress' const require = createRequire(import.meta.url) const pkg = require('vitepress/package.json') -export default defineConfig({ +export default defineAdditionalConfig({ lang: 'en-US', description: 'Vite & Vue powered static site generator.', diff --git a/docs/es/config.ts b/docs/es/config.ts index 1420856d..14180280 100644 --- a/docs/es/config.ts +++ b/docs/es/config.ts @@ -1,16 +1,16 @@ import { createRequire } from 'module' -import { defineConfig, type DefaultTheme } from 'vitepress' +import { defineAdditionalConfig, type DefaultTheme } from 'vitepress' const require = createRequire(import.meta.url) const pkg = require('vitepress/package.json') -export default defineConfig({ +export default defineAdditionalConfig({ lang: 'es-CO', description: 'Generador de Sitios Estaticos desarrollado con Vite y Vue.', themeConfig: { nav: nav(), - search: { options: searchOptions() } as DefaultTheme.Config['search'], + search: { options: searchOptions() }, sidebar: { '/es/guide/': { base: '/es/guide/', items: sidebarGuide() }, '/es/reference/': { base: '/es/reference/', items: sidebarReference() } diff --git a/docs/fa/config.ts b/docs/fa/config.ts index 55f53b52..6d38e250 100644 --- a/docs/fa/config.ts +++ b/docs/fa/config.ts @@ -1,10 +1,10 @@ import { createRequire } from 'module' -import { defineConfig, type DefaultTheme } from 'vitepress' +import { defineAdditionalConfig, type DefaultTheme } from 'vitepress' const require = createRequire(import.meta.url) const pkg = require('vitepress/package.json') -export default defineConfig({ +export default defineAdditionalConfig({ title: 'ویت‌پرس', lang: 'fa-IR', description: 'Vite & Vue powered static site generator.', @@ -20,7 +20,7 @@ export default defineConfig({ }, themeConfig: { nav: nav(), - search: { options: searchOptions() } as DefaultTheme.Config['search'], + search: { options: searchOptions() }, sidebar: { '/fa/guide/': { base: '/fa/guide/', items: sidebarGuide() }, '/fa/reference/': { base: '/fa/reference/', items: sidebarReference() } diff --git a/docs/ko/config.ts b/docs/ko/config.ts index 08773ccb..b6d30187 100644 --- a/docs/ko/config.ts +++ b/docs/ko/config.ts @@ -1,16 +1,16 @@ import { createRequire } from 'module' -import { defineConfig, type DefaultTheme } from 'vitepress' +import { defineAdditionalConfig, type DefaultTheme } from 'vitepress' const require = createRequire(import.meta.url) const pkg = require('vitepress/package.json') -export default defineConfig({ +export default defineAdditionalConfig({ lang: 'ko-KR', description: 'Vite 및 Vue 기반 정적 사이트 생성기.', themeConfig: { nav: nav(), - search: { options: searchOptions() } as DefaultTheme.Config['search'], + search: { options: searchOptions() }, sidebar: { '/ko/guide/': { base: '/ko/guide/', items: sidebarGuide() }, '/ko/reference/': { base: '/ko/reference/', items: sidebarReference() } diff --git a/docs/pt/config.ts b/docs/pt/config.ts index aa08b7fa..d03e0e64 100644 --- a/docs/pt/config.ts +++ b/docs/pt/config.ts @@ -1,16 +1,16 @@ import { createRequire } from 'module' -import { defineConfig, type DefaultTheme } from 'vitepress' +import { defineAdditionalConfig, type DefaultTheme } from 'vitepress' const require = createRequire(import.meta.url) const pkg = require('vitepress/package.json') -export default defineConfig({ +export default defineAdditionalConfig({ lang: 'pt-BR', description: 'Gerador de Site Estático desenvolvido com Vite e Vue.', themeConfig: { nav: nav(), - search: { options: searchOptions() } as DefaultTheme.Config['search'], + search: { options: searchOptions() }, sidebar: { '/pt/guide/': { base: '/pt/guide/', items: sidebarGuide() }, '/pt/reference/': { base: '/pt/reference/', items: sidebarReference() } diff --git a/docs/ru/config.ts b/docs/ru/config.ts index 41582f5e..5f856b1d 100644 --- a/docs/ru/config.ts +++ b/docs/ru/config.ts @@ -1,16 +1,16 @@ import { createRequire } from 'module' -import { defineConfig, type DefaultTheme } from 'vitepress' +import { defineAdditionalConfig, type DefaultTheme } from 'vitepress' const require = createRequire(import.meta.url) const pkg = require('vitepress/package.json') -export default defineConfig({ +export default defineAdditionalConfig({ lang: 'ru-RU', description: 'Генератор статических сайтов на основе Vite и Vue.', themeConfig: { nav: nav(), - search: { options: searchOptions() } as DefaultTheme.Config['search'], + search: { options: searchOptions() }, sidebar: { '/ru/guide/': { base: '/ru/guide/', items: sidebarGuide() }, '/ru/reference/': { base: '/ru/reference/', items: sidebarReference() } diff --git a/docs/zh/config.ts b/docs/zh/config.ts index f8ff24ee..cf06d58a 100644 --- a/docs/zh/config.ts +++ b/docs/zh/config.ts @@ -1,16 +1,16 @@ import { createRequire } from 'module' -import { defineConfig, type DefaultTheme } from 'vitepress' +import { defineAdditionalConfig, type DefaultTheme } from 'vitepress' const require = createRequire(import.meta.url) const pkg = require('vitepress/package.json') -export default defineConfig({ +export default defineAdditionalConfig({ lang: 'zh-Hans', description: '由 Vite 和 Vue 驱动的静态站点生成器', themeConfig: { nav: nav(), - search: { options: searchOptions() } as DefaultTheme.Config['search'], + search: { options: searchOptions() }, sidebar: { '/zh/guide/': { base: '/zh/guide/', items: sidebarGuide() }, '/zh/reference/': { base: '/zh/reference/', items: sidebarReference() } diff --git a/src/node/config.ts b/src/node/config.ts index a2634034..f657c307 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -14,10 +14,7 @@ import type { DefaultTheme } from './defaultTheme' import { resolvePages } from './plugins/dynamicRoutesPlugin' import { APPEARANCE_KEY, slash, type HeadConfig, type SiteData } from './shared' import type { RawConfigExports, SiteConfig, UserConfig } from './siteConfig' -import type { - AdditionalConfigDict, - AdditionalConfigEntry -} from '../../types/shared' +import type { AdditionalConfig, AdditionalConfigDict } from '../../types/shared' import { glob } from 'tinyglobby' export { resolvePages } from './plugins/dynamicRoutesPlugin' @@ -43,6 +40,15 @@ export function defineConfig(config: UserConfig) { return config } +/** + * Type additional config helper + */ +export function defineAdditionalConfig( + config: AdditionalConfig +) { + return config +} + /** * Type config helper for custom theme config */ @@ -52,6 +58,15 @@ export function defineConfigWithTheme( return config } +/** + * Type additional config helper + */ +export function defineAdditionalConfigWithTheme( + config: AdditionalConfig +) { + return config +} + export async function resolveConfig( root: string = process.cwd(), command: 'serve' | 'build' = 'serve', @@ -198,8 +213,9 @@ async function gatherAdditionalConfig( normalizePath(path.resolve(file)) ) ) - if (mode === 'development') (configExports.config as any).VP_SOURCE = file - return [id, configExports.config as AdditionalConfigEntry] + if (mode === 'development') + (configExports.config as any)['[VP_SOURCE]'] = file + return [id, configExports.config as AdditionalConfig] }) ) return [Object.fromEntries(exports.filter(([id, config]) => config)), deps]