Files
vuepress/lib/app/Content.js
T
2018-04-05 17:13:46 -04:00

43 lines
971 B
JavaScript

export default {
created () {
if (this.$ssrContext) {
this.$ssrContext.title = getTitle(this)
this.$ssrContext.lang = getLang(this)
}
},
mounted () {
const updateMeta = () => {
document.title = getTitle(this)
document.documentElement.lang = getLang(this)
}
this.$watch('$page', updateMeta)
updateMeta()
},
render (h) {
const componentName = this.$page.path === '/'
? 'index'
: this.$page.path
.replace(/^\//, '')
.replace(/\.html$/, '')
.replace(/\//g, '-')
return h('page-' + componentName)
}
}
function getTitle (vm) {
const selfTitle = (
vm.$page.frontmatter.title || // explicit title
vm.$page.title // inferred title
)
const siteTitle = vm.$site.title
return siteTitle
? selfTitle
? (siteTitle + ' | ' + selfTitle)
: siteTitle
: selfTitle || 'VuePress'
}
function getLang (vm) {
return vm.$page.frontmatter.lang || 'en'
}