|
|
|
@ -5,7 +5,7 @@ import { pathToFileURL } from 'url'
|
|
|
|
|
import escape from 'escape-html'
|
|
|
|
|
import { normalizePath, transformWithEsbuild } from 'vite'
|
|
|
|
|
import { RollupOutput, OutputChunk, OutputAsset } from 'rollup'
|
|
|
|
|
import { HeadConfig, createTitle } from '../shared'
|
|
|
|
|
import { HeadConfig, createTitle, PageData } from '../shared'
|
|
|
|
|
import { slash } from '../utils/slash'
|
|
|
|
|
import { SiteConfig, resolveSiteDataByRoute } from '../config'
|
|
|
|
|
|
|
|
|
@ -52,13 +52,31 @@ export async function renderPage(
|
|
|
|
|
const pageHash = pageToHashMap[pageName.toLowerCase()]
|
|
|
|
|
const pageClientJsFileName = `assets/${pageName}.${pageHash}.lean.js`
|
|
|
|
|
|
|
|
|
|
let pageData: PageData
|
|
|
|
|
let hasCustom404 = true
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// resolve page data so we can render head tags
|
|
|
|
|
const { __pageData } = await import(
|
|
|
|
|
pathToFileURL(path.join(config.tempDir, pageServerJsFileName)).toString()
|
|
|
|
|
)
|
|
|
|
|
const pageData = JSON.parse(__pageData)
|
|
|
|
|
pageData = JSON.parse(__pageData)
|
|
|
|
|
} catch (e) {
|
|
|
|
|
if (page === '404.md') {
|
|
|
|
|
hasCustom404 = false
|
|
|
|
|
pageData = {
|
|
|
|
|
relativePath: '',
|
|
|
|
|
title: '404',
|
|
|
|
|
description: 'Not Found',
|
|
|
|
|
headers: [],
|
|
|
|
|
frontmatter: {},
|
|
|
|
|
lastUpdated: 0
|
|
|
|
|
}
|
|
|
|
|
} else throw e
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let preloadLinks = config.mpa
|
|
|
|
|
let preloadLinks =
|
|
|
|
|
config.mpa || (!hasCustom404 && page === '404.md')
|
|
|
|
|
? appChunk
|
|
|
|
|
? [appChunk.fileName]
|
|
|
|
|
: []
|
|
|
|
|