Skip to content

Commit 05b87dd

Browse files
committed
feat(core): create siteData in vuepress app
1 parent 4ae8a7d commit 05b87dd

File tree

7 files changed

+25
-19
lines changed

7 files changed

+25
-19
lines changed

packages/@vuepress/core/src/app/createApp.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { appUseByConfig } from './appUseByConfig'
88
import { createAppDir } from './createAppDir'
99
import { createAppEnv } from './createAppEnv'
1010
import { createAppOptions } from './createAppOptions'
11+
import { createAppSiteData } from './createAppSiteData'
1112
import { createAppVersion } from './createAppVersion'
1213
import { resolveBundler } from './resolveBundler'
1314

@@ -19,6 +20,7 @@ export const createApp = (config: AppConfig): App => {
1920
const options = createAppOptions(config)
2021
const dir = createAppDir(options)
2122
const env = createAppEnv(options)
23+
const siteData = createAppSiteData(options)
2224
const markdown = createMarkdown(options.markdown)
2325
const pluginApi = createPluginApi()
2426

@@ -27,6 +29,7 @@ export const createApp = (config: AppConfig): App => {
2729
options,
2830
dir,
2931
env,
32+
siteData,
3033
markdown,
3134
pluginApi,
3235

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import type { AppOptions, SiteData } from '../types'
2+
3+
/**
4+
* Create site data for vuepress app
5+
*
6+
* Site data will also be used in client
7+
*/
8+
export const createAppSiteData = (options: AppOptions): SiteData => {
9+
return {
10+
base: options.base,
11+
lang: options.lang,
12+
title: options.title,
13+
description: options.description,
14+
head: options.head,
15+
locales: options.locales,
16+
themeConfig: options.themeConfig,
17+
}
18+
}

packages/@vuepress/core/src/app/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export * from './createAppDir'
88
export * from './createAppEnv'
99
export * from './createAppOptions'
1010
export * from './createAppPages'
11+
export * from './createAppSiteData'
1112
export * from './createAppVersion'
1213
export * from './createAppWriteTemp'
1314
export * from './normalizePlugin'

packages/@vuepress/core/src/app/prepare/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,3 @@ export * from './preparePagesData'
1010
export * from './preparePagesRoutes'
1111
export * from './prepareSiteData'
1212
export * from './resolvePageData'
13-
export * from './resolveSiteData'

packages/@vuepress/core/src/app/prepare/prepareSiteData.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import type { App } from '../../types'
2-
import { resolveSiteData } from './resolveSiteData'
32

43
/**
54
* Generate site data temp file
65
*/
76
export const prepareSiteData = async (app: App): Promise<void> => {
87
const content = `\
9-
export const siteData = ${JSON.stringify(resolveSiteData(app), null, 2)}
8+
export const siteData = ${JSON.stringify(app.siteData, null, 2)}
109
`
1110

1211
await app.writeTemp('internal/siteData.js', content)

packages/@vuepress/core/src/app/prepare/resolveSiteData.ts

Lines changed: 0 additions & 16 deletions
This file was deleted.

packages/@vuepress/core/src/types/app/app.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { Markdown } from '@vuepress/markdown'
2+
import type { SiteData } from '@vuepress/shared'
23
import type { BundlerDev, BundlerBuild } from '../bundler'
34
import type { Page } from '../page'
45
import type { Plugin, PluginOptions, PluginConfig } from '../plugin'
@@ -16,6 +17,7 @@ export interface App {
1617
options: AppOptions
1718
dir: AppDir
1819
env: AppEnv
20+
siteData: SiteData
1921
markdown: Markdown
2022
pluginApi: PluginApi
2123
use: <T extends PluginOptions>(

0 commit comments

Comments
 (0)