diff --git a/src/node/build/bundle.ts b/src/node/build/bundle.ts index 7cdabfe7..fab681de 100644 --- a/src/node/build/bundle.ts +++ b/src/node/build/bundle.ts @@ -36,7 +36,7 @@ export async function bundle( const root = config.root const userConfig = await resolveUserConfig(root) const resolver = createResolver(config.themeDir, userConfig) - const markdownToVue = createMarkdownToVueRenderFn(root) + const markdownToVue = createMarkdownToVueRenderFn(root, userConfig.markdown) let isClientBuild = true const pageToHashMap = Object.create(null) diff --git a/src/node/config.ts b/src/node/config.ts index 3df6646c..d90121c7 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -5,6 +5,7 @@ import globby from 'globby' import { createResolver, APP_PATH } from './resolver' import { Resolver } from 'vite' import { SiteData, HeadConfig, LocaleConfig } from '../../types/shared' +import { MarkdownOptions } from './markdown/markdown' export { resolveSiteDataByRoute } from '../shared/config' const debug = require('debug')('vitepress:config') @@ -18,6 +19,7 @@ export interface UserConfig { themeConfig?: ThemeConfig locales?: Record alias?: Record + markdown?: MarkdownOptions // TODO locales support etc. } diff --git a/src/node/server.ts b/src/node/server.ts index 9ca08a99..3e281453 100644 --- a/src/node/server.ts +++ b/src/node/server.ts @@ -5,7 +5,12 @@ import { ServerConfig, ServerPlugin } from 'vite' -import { resolveConfig, SiteConfig, resolveSiteData } from './config' +import { + resolveConfig, + SiteConfig, + resolveSiteData, + resolveUserConfig +} from './config' import { createMarkdownToVueRenderFn } from './markdownToVue' import { APP_PATH, SITE_DATA_REQUEST_PATH } from './resolver' import { existsSync } from 'fs' @@ -17,8 +22,9 @@ function createVitePressPlugin({ configPath, site: initialSiteData }: SiteConfig): ServerPlugin { - return ({ app, root, watcher, resolver }) => { - const markdownToVue = createMarkdownToVueRenderFn(root) + return async ({ app, root, watcher, resolver }) => { + const userConfig = await resolveUserConfig(root) + const markdownToVue = createMarkdownToVueRenderFn(root, userConfig.markdown) // hot reload .md files as .vue files watcher.on('change', async (file) => {