47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import VPBadge from '@theme/global/VPBadge.vue'
|
|
import VPCard from '@theme/global/VPCard.vue'
|
|
import VPCardGrid from '@theme/global/VPCardGrid.vue'
|
|
import VPCardMasonry from '@theme/global/VPCardMasonry.vue'
|
|
import VPImageCard from '@theme/global/VPImageCard.vue'
|
|
import VPLinkCard from '@theme/global/VPLinkCard.vue'
|
|
import VPHomeBox from '@theme/Home/VPHomeBox.vue'
|
|
import VPButton from '@theme/VPButton.vue'
|
|
import VPIcon from '@theme/VPIcon.vue'
|
|
import { hasGlobalComponent } from '@vuepress/helper/client'
|
|
import { type App, h, resolveComponent } from 'vue'
|
|
|
|
export function globalComponents(app: App) {
|
|
app.component('Badge', VPBadge)
|
|
app.component('VPBadge', VPBadge)
|
|
|
|
app.component('VPCard', VPCard)
|
|
app.component('Card', VPCard)
|
|
|
|
app.component('VPCardGrid', VPCardGrid)
|
|
app.component('CardGrid', VPCardGrid)
|
|
|
|
app.component('VPLinkCard', VPLinkCard)
|
|
app.component('LinkCard', VPLinkCard)
|
|
|
|
app.component('VPImageCard', VPImageCard)
|
|
app.component('ImageCard', VPImageCard)
|
|
|
|
app.component('VPCardMasonry', VPCardMasonry)
|
|
app.component('CardMasonry', VPCardMasonry)
|
|
|
|
app.component('Icon', VPIcon)
|
|
app.component('VPIcon', VPIcon)
|
|
|
|
app.component('VPButton', VPButton)
|
|
|
|
app.component('HomeBox', VPHomeBox)
|
|
app.component('VPHomeBox', VPHomeBox)
|
|
|
|
app.component('DocComment', (props) => {
|
|
if (hasGlobalComponent('CommentService')) {
|
|
return h(resolveComponent('CommentService'), props)
|
|
}
|
|
return null
|
|
})
|
|
}
|