34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
// .vitepress/theme/index.ts
|
|
import DefaultTheme from 'vitepress/theme'
|
|
import { NolebaseGitChangelogPlugin } from '@nolebase/vitepress-plugin-git-changelog/client'
|
|
import 'virtual:group-icons.css'
|
|
import { h, onMounted } from 'vue'
|
|
import './style/style.css'
|
|
import ArticleShare from './components/ArticleShare.vue'
|
|
import backtotop from './components/backtotop.vue'
|
|
import '@nolebase/vitepress-plugin-git-changelog/client/style.css'
|
|
|
|
export default {
|
|
extends: DefaultTheme,
|
|
Layout: () => {
|
|
return h(DefaultTheme.Layout, null, {
|
|
'aside-outline-before': () => h(ArticleShare),
|
|
'doc-footer-before': () => h(backtotop),
|
|
})
|
|
},
|
|
enhanceApp({ app }) {
|
|
app.use(NolebaseGitChangelogPlugin)
|
|
|
|
// Register service worker in production for offline support and caching
|
|
if (
|
|
typeof window !== 'undefined' &&
|
|
'serviceWorker' in navigator &&
|
|
(import.meta as any).env?.PROD
|
|
) {
|
|
onMounted(() => {
|
|
navigator.serviceWorker.register('/sw.js').catch(() => {})
|
|
})
|
|
}
|
|
},
|
|
}
|