Configuration

Config File

Without any configuration, the page is pretty minimal, and the user has no way to navigate around the site. To customize your site, let's first create a .vuepress directory inside your docs directory. This is where all VuePress-specific files will be placed. Your project structure is probably like this:

.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js
└─ package.json

The essential file for configuring a VuePress site is .vuepress/config.js, which should export a JavaScript object:

module.exports = {
  title: 'Hello VuePress',
  description: 'Just playing around'
}

If you've got the dev server running, you should see the page now has a header with the title and a search box. They will be rendered as a <meta> tag in the page HTML. VuePress comes with built-in headers-based search - it automatically builds a simple search index from the title, h2 and h3 headers from all the pages.

Consult the Config Reference for a full list of options.

Alternative Config Formats

You can also use YAML (.vuepress/config.yml) or TOML (.vuepress/config.toml) formats for the configuration file.

Theme Configuration

A VuePress theme is responsible for all the layout and interactivity details of your site. VuePress ships with a default theme (you are looking at it right now) which is designed for technical documentation. It exposes a number of options that allow you to customize the navbar, sidebar and homepage, etc. For details, check out the Default Theme Config page.

If you wish to develop a custom theme, see Custom Themes.

App Level Enhancements

Since the VuePress app is a standard Vue app, you can apply app-level enhancements by creating a file .vuepress/enhanceApp.js, which will be imported into the app if it is present. The file should export default a hook function which will receive an object containing some app level values. You can use this hook to install additional Vue plugins, register global components, or add additional router hooks:

export default ({
  Vue, // the version of Vue being used in the VuePress app
  options, // the options for the root Vue instance
  router, // the router instance for the app
  siteData // site metadata
}) => {
  // ...apply enhancements to the app
}
Last Updated: 8/25/2019, 7:30:25 AM