feat(user-markdown-options): allow markdown configuration in user config

pull/128/head
chrisshank 5 years ago
parent e682675f96
commit 2761b7e34b

@ -36,7 +36,7 @@ export async function bundle(
const root = config.root const root = config.root
const userConfig = await resolveUserConfig(root) const userConfig = await resolveUserConfig(root)
const resolver = createResolver(config.themeDir, userConfig) const resolver = createResolver(config.themeDir, userConfig)
const markdownToVue = createMarkdownToVueRenderFn(root) const markdownToVue = createMarkdownToVueRenderFn(root, userConfig.markdown)
let isClientBuild = true let isClientBuild = true
const pageToHashMap = Object.create(null) const pageToHashMap = Object.create(null)

@ -5,6 +5,7 @@ import globby from 'globby'
import { createResolver, APP_PATH } from './resolver' import { createResolver, APP_PATH } from './resolver'
import { Resolver } from 'vite' import { Resolver } from 'vite'
import { SiteData, HeadConfig, LocaleConfig } from '../../types/shared' import { SiteData, HeadConfig, LocaleConfig } from '../../types/shared'
import { MarkdownOptions } from './markdown/markdown'
export { resolveSiteDataByRoute } from '../shared/config' export { resolveSiteDataByRoute } from '../shared/config'
const debug = require('debug')('vitepress:config') const debug = require('debug')('vitepress:config')
@ -18,6 +19,7 @@ export interface UserConfig<ThemeConfig = any> {
themeConfig?: ThemeConfig themeConfig?: ThemeConfig
locales?: Record<string, LocaleConfig> locales?: Record<string, LocaleConfig>
alias?: Record<string, string> alias?: Record<string, string>
markdown?: MarkdownOptions
// TODO locales support etc. // TODO locales support etc.
} }

@ -5,7 +5,12 @@ import {
ServerConfig, ServerConfig,
ServerPlugin ServerPlugin
} from 'vite' } from 'vite'
import { resolveConfig, SiteConfig, resolveSiteData } from './config' import {
resolveConfig,
SiteConfig,
resolveSiteData,
resolveUserConfig
} from './config'
import { createMarkdownToVueRenderFn } from './markdownToVue' import { createMarkdownToVueRenderFn } from './markdownToVue'
import { APP_PATH, SITE_DATA_REQUEST_PATH } from './resolver' import { APP_PATH, SITE_DATA_REQUEST_PATH } from './resolver'
import { existsSync } from 'fs' import { existsSync } from 'fs'
@ -17,8 +22,9 @@ function createVitePressPlugin({
configPath, configPath,
site: initialSiteData site: initialSiteData
}: SiteConfig): ServerPlugin { }: SiteConfig): ServerPlugin {
return ({ app, root, watcher, resolver }) => { return async ({ app, root, watcher, resolver }) => {
const markdownToVue = createMarkdownToVueRenderFn(root) const userConfig = await resolveUserConfig(root)
const markdownToVue = createMarkdownToVueRenderFn(root, userConfig.markdown)
// hot reload .md files as .vue files // hot reload .md files as .vue files
watcher.on('change', async (file) => { watcher.on('change', async (file) => {

Loading…
Cancel
Save