From 2761b7e34bfb1f99d3f251160d37989f5a43a1a8 Mon Sep 17 00:00:00 2001 From: chrisshank Date: Sat, 7 Nov 2020 22:06:08 -0800 Subject: [PATCH] feat(user-markdown-options): allow markdown configuration in user config --- src/node/build/bundle.ts | 2 +- src/node/config.ts | 2 ++ src/node/server.ts | 12 +++++++++--- 3 files changed, 12 insertions(+), 4 deletions(-) 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) => {