feat: $frontmatter global and global computed docs

pull/152/head
Matias Capeletto 5 years ago
parent 9e971f57da
commit 9813eb4075

@ -38,6 +38,7 @@ function getGuideSidebar() {
{ text: 'Configuration', link: '/guide/configuration' }, { text: 'Configuration', link: '/guide/configuration' },
{ text: 'Markdown Extensions', link: '/guide/markdown' }, { text: 'Markdown Extensions', link: '/guide/markdown' },
{ text: 'Frontmatter', link: '/guide/frontmatter' }, { text: 'Frontmatter', link: '/guide/frontmatter' },
{ text: 'Global Computed', link: '/guide/global-computed' },
{ text: 'Customization', link: '/guide/customization' }, { text: 'Customization', link: '/guide/customization' },
{ text: 'Deploying', link: '/guide/deploy' } { text: 'Deploying', link: '/guide/deploy' }
] ]

@ -9,7 +9,7 @@ editLink: true
--- ---
``` ```
Between the triple-dashed lines, you can set [predefined variables](#predefined-variables), or even create custom ones of your own. These variables can be used via the <code>\$page.frontmatter</code> variable. Between the triple-dashed lines, you can set [predefined variables](#predefined-variables), or even create custom ones of your own. These variables can be used via the <code>\$frontmatter</code> variable.
Heres an example of how you could use it in your Markdown file: Heres an example of how you could use it in your Markdown file:

@ -0,0 +1,105 @@
# Global Computed
In VitePress, some core [computed properties](https://v3.vuejs.org/guide/computed.html#computed-properties) can be used by the default theme or custom themes. Or directly in Markdown pages using vue, for example using `{{ $frontmatter.title }}` to access the title defined in the frontmatter section of the page.
## \$site
This is the `$site` value of the site youre currently reading:
```json
{
"title": "VitePress",
"description": "Vite & Vue powered static site generator.",
"lang": "en-US",
"locales": {},
"base": "/",
"head": [],
"themeConfig: $theme
}
```
## \$page
This is the `$page` value of the page youre currently reading:
```json
{
"title": "Global Computed",
"relativePath": "guide/global-computed.md",
"lastUpdated": 1606297645000
"headers": [
{
"level": 2,
"title": "$site",
"slug": "site"
},
{
"level": 2,
"title": "$page",
"slug": "$page"
},
...
],
"frontmatter": $frontmatter,
}
```
## \$frontmatter
Reference of [\$page](#page).frontmatter.
```json
{
"title": "Docs with VitePress",
"editLink": true
}
```
## \$theme
Refers to `$site.themeConfig`.
```json
{
"repo": "vuejs/vitepress",
"docsDir": "docs",
"locales": {},
"editLinks": true,
"editLinkText": "Edit this page on GitHub",
"lastUpdated": "Last Updated",
"nav": [
{
"text": "Guide",
"link": "/"
},
...
],
"sidebar": {
"/": [
{
"text": "Introduction",
"children": [
{
"text": "What is VitePress?",
"link": "/"
},
...
]
}
],
"/guide/": [
{
"text": "Introduction",
"children": [
{
"text": "What is VitePress?",
"link": "/"
},
...
]
}
],
...
},
}
```

@ -87,6 +87,11 @@ export function createApp() {
return router.route.data return router.route.data
} }
}, },
$frontmatter: {
get() {
return router.route.data.frontmatter
}
},
$theme: { $theme: {
get() { get() {
return siteDataByRouteRef.value.themeConfig return siteDataByRouteRef.value.themeConfig

Loading…
Cancel
Save