element-plus/docs/.vitepress/config.ts
2022-04-09 04:32:01 +08:00

91 lines
1.8 KiB
TypeScript

import consola from 'consola'
import { REPO_BRANCH, REPO_PATH } from '@element-plus/build-constants'
import { docsDirName } from '@element-plus/build-utils'
import { languages } from './utils/lang'
import { head } from './config/head'
import { sidebars } from './config/sidebars'
import { nav } from './config/nav'
import { mdPlugin } from './config/plugins'
import { features } from './config/features'
import type { UserConfig } from 'vitepress'
const buildTransformers = () => {
const transformer = () => {
return {
props: [],
needRuntime: true,
}
}
const transformers = {}
const directives = [
'infinite-scroll',
'loading',
'popover',
'click-outside',
'repeat-click',
'trap-focus',
'mousewheel',
'resize',
]
directives.forEach((k) => {
transformers[k] = transformer
})
return transformers
}
consola.debug(`DOC_ENV: ${process.env.DOC_ENV}`)
const locales = {}
languages.forEach((lang) => {
locales[`/${lang}`] = {
label: lang,
lang,
}
})
export const config: UserConfig = {
title: 'Element Plus',
description: 'a Vue 3 based component library for designers and developers',
lastUpdated: true,
head,
themeConfig: {
repo: REPO_PATH,
docsBranch: REPO_BRANCH,
docsDir: docsDirName,
editLinks: true,
editLinkText: 'Edit this page on GitHub',
lastUpdated: 'Last Updated',
logo: '/images/element-plus-logo.svg',
logoSmall: '/images/element-plus-logo-small.svg',
sidebars,
nav,
agolia: {
apiKey: '377f2b647a96d9b1d62e4780f2344da2',
appId: 'BH4D9OD16A',
},
features,
langs: languages,
},
locales,
markdown: {
config: (md) => mdPlugin(md),
},
vue: {
template: {
ssr: true,
compilerOptions: {
directiveTransforms: buildTransformers(),
},
},
},
}
export default config