index.ts (923B)
1 import { h, Fragment } from 'vue' 2 import DefaultTheme from 'vitepress/theme' 3 import type { Theme } from 'vitepress' 4 import Banner from './components/Banner.vue' 5 import Footer from './components/Footer.vue' 6 import SponsorButton from './components/SponsorButton.vue' 7 import ExternalLinkWarning from './components/ExternalLinkWarning.vue' 8 import CopyLinkButton from './components/CopyLinkButton.vue' 9 import Breadcrumbs from './components/Breadcrumbs.vue' 10 import './style.css' 11 12 export default { 13 extends: DefaultTheme, 14 15 Layout() { 16 return h(DefaultTheme.Layout, null, { 17 'layout-bottom': () => h(Fragment, [ 18 h(Banner), 19 h(ExternalLinkWarning) 20 ]), 21 'doc-before': () => h('div', { class: 'bsc-doc-toolbar' }, [ 22 h(Breadcrumbs), 23 h(CopyLinkButton) 24 ]), 25 'doc-after': () => h(Footer), 26 'nav-bar-content-after': () => h(SponsorButton) 27 }) 28 } 29 } satisfies Theme