Config
Site Config
base
Type:
stringDefault:
/Details:
The base URL the site will be deployed at.
You will need to set this if you plan to deploy your site under a sub path. It should always start and end with a slash. For example, if you plan to deploy your site to GitHub pages at
https://foo.github.io/bar/, then you should setbaseto"/bar/".The
baseis automatically prepended to the URLs that start with/in other options, so you only need to specify it once. (Except for attrs of head)Notice that
baseshould be an absolute URL pathname starting and ending with/.Also see:
lang
Type:
stringDefault:
en-USDetails:
Language for the site.
This will be the
langattribute of the<html>tag in the rendered HTML.This can be specified in different locales.
Also see:
title
Type:
stringDefault:
''Details:
Title for the site.
This will be the suffix for all page titles, and displayed in the navbar in the default theme.
This can be specified in different locales.
Also see:
description
Type:
stringDefault:
''Details:
Description for the site.
This will be the
contentattribute of<meta name="description" />tag in the rendered HTML, which will be overrode by thedescriptionfield of page frontmatter.This can be specified in different locales.
Also see:
head
Type:
HeadConfig[]Default:
[]Details:
Extra tags to inject into the
<head>tag in the rendered HTML.You can specify each tag in the form of
[tagName, { attrName: attrValue }, innerHTML?].This can be specified in different locales.
Notice that if the
attrValueis a pathname, it will be kept as-is without prepending base automatically, so remember to prepend it manually if needed.Example:
To add a custom favicon:
export default {
head: [['link', { rel: 'icon', href: '/images/logo.png' }]],
}Rendered as:
<head>
<link rel="icon" href="/images/logo.png" />
</head>- Also see:
locales
Type:
{ [path: string]: Partial<SiteLocaleData> }Default:
{}Details:
Specify locales for i18n support.
Acceptable fields:
Also see:
Theme Config
theme
Type:
ThemeDetails:
Set the theme of your site.
If this option is not set, the default theme will be used.
Also see:
Bundler Config
bundler
Type:
BundlerDetails:
Set the bundler of your site.
If this option is not set, the default bundler will be used:
- With
vuepressorvuepress-vite, the default bundler is vite. - With
vuepress-webpack, the default bundler is webpack.
- With
Also see:
Common Config
dest
Type:
stringDefault:
`${sourceDir}/.vuepress/dist`Details:
Specify the output directory for
vuepress buildcommand.
temp
Type:
stringDefault:
`${sourceDir}/.vuepress/.temp`Details:
Specify the directory for temporary files.
Warning
Since VuePress will load temp files during dev and build, the temp directory should be inside project root to resolve dependencies correctly.
cache
Type:
stringDefault:
`${sourceDir}/.vuepress/.cache`Details:
Specify the directory for cache files.
public
Type:
stringDefault:
`${sourceDir}/.vuepress/public`Details:
Specify the directory for public files.
Also see:
debug
Type:
booleanDefault:
falseDetails:
Enable debug mode or not.
This would be helpful for developers. Also, we are using debug package for debug logging, which can be enabled via
DEBUG=vuepress*environment variable.
pagePatterns
Type:
string[]Default:
['**/*.md', '!.vuepress', '!node_modules']Details:
Specify the patterns of files you want to be resolved as pages. The patterns are relative to the source directory.
permalinkPattern
Type:
string | nullDefault:
nullDetails:
Specify the pattern to generate permalink.
This will be overrode by the
permalinkPatternfield of page frontmatter.Also see:
Dev Config
host
Type:
stringDefault:
'0.0.0.0'Details:
Specify the host to use for the dev server.
port
Type:
numberDefault:
8080Details:
Specify the port to use for the dev server.
open
Type:
booleanDefault:
falseDetails:
Whether to open the browser after dev-server had been started.
templateDev
Type:
stringDefault:
'@vuepress/client/templates/dev.html'Details:
Specify the path of the HTML template to be used for dev.
Build Config
shouldPreload
Type:
((file: string, type: string) => boolean)) | booleanDefault:
trueDetails:
A function to control what files should have
<link rel="preload">resource hints generated. Set totrueorfalseto enable or disable totally.By default, only those files that are required by current page will be preloaded. So you can keep it
truein most cases.
shouldPrefetch
Type:
((file: string, type: string) => boolean)) | booleanDefault:
trueDetails:
A function to control what files should have
<link rel="prefetch">resource hints generated. Set totrueorfalseto enable or disable for all files.If you set it to
true, all files that required by other pages will be prefetched. This is good for small sites, which will speed up the navigation, but it might not be a good idea if you have lots of pages in your site.
templateBuild
Type:
stringDefault:
'@vuepress/client/templates/build.html'Details:
Specify the path of the HTML template to be used for build.
templateBuildRenderer
Type:
TemplateRendererDefault:
templateRendererDetails:
Specify the HTML template renderer to be used for build.
Markdown Config
markdown
Type:
MarkdownOptionsDefault:
{}Details:
Configure VuePress built-in Markdown syntax extensions.
It accepts all options of markdown-it, and the following additional options.
Also see:
markdown.anchor
Type:
AnchorPluginOptions | falseDefault:
const defaultOptions = {
level: [1, 2, 3, 4, 5, 6],
permalink: anchorPlugin.permalink.headerLink({
class: 'header-anchor',
safariReaderFix: true,
}),
}Details:
Options for markdown-it-anchor.
Set to
falseto disable this plugin.Also see:
markdown.assets
Type:
AssetsPluginOptions | falseDetails:
Options for VuePress built-in markdown-it assets plugin.
Set to
falseto disable this plugin.
Caution
You should not configure it unless you understand what it is for.
markdown.component
Type:
undefined | falseDetails:
Options for @mdit-vue/plugin-component.
Set to
falseto disable this plugin.
Caution
You should not configure it unless you understand what it is for.
markdown.emoji
Type:
EmojiPluginOptions | falseDetails:
Options for markdown-it-emoji.
Set to
falseto disable this plugin.Also see:
markdown.frontmatter
Type:
FrontmatterPluginOptions | falseDetails:
Options for @mdit-vue/plugin-frontmatter.
Set to
falseto disable this plugin.Also see:
Caution
You should not configure it unless you understand what it is for.
markdown.headers
Type:
HeadersPluginOptions | falseDefault:
const defaultOptions = {
level: [2, 3],
}Details:
Options for @mdit-vue/plugin-headers.
Set to
falseto disable this plugin.Also see:
markdown.importCode
Type:
ImportCodePluginOptions | falseDetails:
Options for VuePress built-in markdown-it import-code plugin.
Set to
falseto disable this plugin.Also see:
markdown.importCode.handleImportPath
Type:
(str: string) => stringDefault:
(str) => strDetails:
A function to handle the import path of the import code syntax.
markdown.links
Type:
LinksPluginOptions | falseDetails:
Options for VuePress built-in markdown-it links plugin.
It will convert the tag of internal links to internalTag, and add extra attributes and icon to external links.
Set to
falseto disable this plugin.Also see:
markdown.links.internalTag
Type:
'a' | 'RouteLink' | 'RouterLink'Default:
'RouteLink'Details:
Tag for internal links.
By default, this plugin will transform internal links to RouteLink.
markdown.links.externalAttrs
Type:
Record<string, string>Default:
{ target: '_blank', rel: 'noopener noreferrer' }Details:
Additional attributes for external links.
markdown.sfc
Type:
SfcPluginOptions | falseDetails:
Options for @mdit-vue/plugin-sfc.
Set to
falseto disable this plugin.Also see:
Caution
You should not configure it unless you understand what it is for.
markdown.slugify
Type:
(str: string) => stringDetails:
The default slugify function.
markdown.title
Type:
undefined | falseDetails:
Options for @mdit-vue/plugin-title.
Set to
falseto disable this plugin.
Caution
You should not configure it unless you understand what it is for.
markdown.toc
Type:
TocPluginOptions | falseDefault:
const defaultOptions = {
level: [2, 3],
}Details:
Options for @mdit-vue/plugin-toc.
Set to
falseto disable this plugin.Also see:
markdown.vPre.block
Type:
booleanDefault:
trueDetails:
Add
v-predirective to<pre>tag of code block or not.Also see:
markdown.vPre.inline
Type:
booleanDefault:
trueDetails:
Add
v-predirective to<code>tag of inline code or not.Also see:
Plugin Config
plugins
Type:
(Plugin | Plugin[])[]Details:
Plugins to use.
This option accepts an array, each item of which could be a plugin or an array of plugins.
Also see:
Plugin API
User config file also works as a VuePress plugin, so all of the Plugin APIs are available except the name and multiple options.
Please check out Plugin API Reference for a full list of Plugin APIs.
