Adding Extra Pages
Sometimes you might want to add some extra pages without creating a markdown file in the source directory.
With the help of Plugin API and Node API, we can do that with ease.
Add a Default Homepage
As a theme author, you may not require users to create a /README.md
file as the homepage, but you want to provide a default one:
import { createPage } from '@vuepress/core'
export default {
// all pages have been loaded after initialization
async onInitialized(app) {
// if the homepage does not exist
if (app.pages.every((page) => page.path !== '/')) {
// create a homepage
const homepage = await createPage(app, {
path: '/',
// set frontmatter
frontmatter: {
layout: 'Layout',
},
// set markdown content
content: `\
# Welcome to ${app.options.title}
This is the default homepage
`,
})
// add it to `app.pages`
app.pages.push(homepage)
}
},
}