Frontmatter

@vuepress/client@vuepress/markdown

lang

  • Type: string

  • Details:

    Language for the page.

    This will override the lang option in your site config.

  • Also see:

title

  • Type: string

  • Details:

    Title for the page.

    If you don't specify title in frontmatter, content of the first level-one header (i.e. # title) will be used as the title.

description

  • Type: string

  • Details:

    Description for the page.

    This will override the description option in your site config.

  • Also see:

  • Type: HeadConfig[]

  • Details:

    Extra tags in <head> tag for the page.

  • Example:

---
head:
  - - meta
    - name: foo
      content: bar
  - - link
    - rel: canonical
      href: foobar
---
1
2
3
4
5
6
7
8
9

Rendered as:

<head>
  <meta name="foo" content="bar" />
  <link rel="canonical" href="foobar" />
</head>
1
2
3
4

date

permalinkPattern

  • Type: string

  • Details:

    Pattern to generate permalink for the page.

    This won't take effect if the permalink frontmatter has been set.

  • Usage:

    PatternDescription
    :yearYear part of created date
    :monthMonth part of created date
    :dayDay part of created date
    :slugSlug of page filename
    :rawRaw route path

    The :year, :month and :day patterns are resolved according to the following priority:

    • The date frontmatter.
    • The filename that matches the date pattern yyyy-MM-dd-foobar.md or yyyy-MM-foobar.md.
    • The dirname that matches the date pattern yyyy/MM/dd/foobar.md or yyyy/MM/foobar.md.
    • Fallback to 0000-00-00.
  • Example 1:

    The page filename is foo-bar.md.

    The page frontmatter is:

---
date: 2021-01-03
permalinkPattern: :year/:month/:day/:slug.html
---
1
2
3
4

Then the permalink of the page would be 2021/01/03/foo-bar.html.

  • Example 2:

    The page filename is 2021-01-03-bar-baz.md.

    The page frontmatter is:

---
permalinkPattern: :year/:month/:day/:slug.html
---
1
2
3

Then the permalink of the page would be 2021/01/03/bar-baz.html.

layout

  • Type: string

  • Details:

    Layout for the page.

    Layouts are provided by theme. If you don't specify this frontmatter, the default layout will be used. You should refer to the theme's own documentation to find what layouts it provides.

    If the theme layouts cannot meet your needs, you can use a custom layout component.

  • Example:

Register a layout component in .vuepress/clientAppEnhance.ts file:

import { defineClientAppEnhance } from '@vuepress/client'
import CustomLayout from './CustomLayout.vue'

export default defineClientAppEnhance(({ app }) => {
  app.component('CustomLayout', CustomLayout)
})
1
2
3
4
5
6

Set custom layout in frontmatter:

---
layout: CustomLayout
---
1
2
3

externalIcon