|
|
@ -1,4 +1,3 @@
|
|
|
|
import { createRequire } from 'module'
|
|
|
|
|
|
|
|
import fs from 'fs-extra'
|
|
|
|
import fs from 'fs-extra'
|
|
|
|
import path from 'path'
|
|
|
|
import path from 'path'
|
|
|
|
import { pathToFileURL } from 'url'
|
|
|
|
import { pathToFileURL } from 'url'
|
|
|
@ -9,8 +8,6 @@ import { HeadConfig, PageData, createTitle, notFoundPageData } from '../shared'
|
|
|
|
import { slash } from '../utils/slash'
|
|
|
|
import { slash } from '../utils/slash'
|
|
|
|
import { SiteConfig, resolveSiteDataByRoute } from '../config'
|
|
|
|
import { SiteConfig, resolveSiteDataByRoute } from '../config'
|
|
|
|
|
|
|
|
|
|
|
|
const require = createRequire(import.meta.url)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export async function renderPage(
|
|
|
|
export async function renderPage(
|
|
|
|
config: SiteConfig,
|
|
|
|
config: SiteConfig,
|
|
|
|
page: string, // foo.md
|
|
|
|
page: string, // foo.md
|
|
|
@ -27,20 +24,9 @@ export async function renderPage(
|
|
|
|
const siteData = resolveSiteDataByRoute(config.site, routePath)
|
|
|
|
const siteData = resolveSiteDataByRoute(config.site, routePath)
|
|
|
|
await router.go(routePath)
|
|
|
|
await router.go(routePath)
|
|
|
|
|
|
|
|
|
|
|
|
// lazy require server-renderer for production build
|
|
|
|
|
|
|
|
// prioritize project root over vitepress' own dep
|
|
|
|
|
|
|
|
let rendererPath
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
rendererPath = require.resolve('vue/server-renderer', {
|
|
|
|
|
|
|
|
paths: [config.root]
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
|
|
rendererPath = require.resolve('vue/server-renderer')
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// render page
|
|
|
|
// render page
|
|
|
|
const content = await import(pathToFileURL(rendererPath).toString()).then(
|
|
|
|
const content = await import('vue/server-renderer').then(
|
|
|
|
(r) => r.renderToString(app)
|
|
|
|
({ renderToString: r }) => r(app)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
const pageName = page.replace(/\//g, '_')
|
|
|
|
const pageName = page.replace(/\//g, '_')
|
|
|
|