test02/node_modules/@vuepress/theme-default/lib/client/config.js
罗佳鸿 6aa1ebe342
Some checks are pending
部署文档 / deploy-gh-pages (push) Waiting to run
first commit
2024-08-13 10:11:19 +08:00

44 lines
1.6 KiB
JavaScript

import { setupDarkMode } from '@theme/useDarkMode';
import { useScrollPromise } from '@theme/useScrollPromise';
import { setupSidebarItems } from '@theme/useSidebarItems';
import { hasGlobalComponent } from '@vuepress/helper/client';
import { h } from 'vue';
import { defineClientConfig } from 'vuepress/client';
import { Badge, CodeGroup, CodeGroupItem } from './components/global/index.js';
import Layout from './layouts/Layout.vue';
import NotFound from './layouts/NotFound.vue';
import '@vuepress/helper/normalize.css';
import './styles/index.scss';
export default defineClientConfig({
enhance({ app, router }) {
if (!hasGlobalComponent('Badge'))
app.component('Badge', Badge);
if (!hasGlobalComponent('CodeGroup'))
app.component('CodeGroup', CodeGroup);
if (!hasGlobalComponent('CodeGroupItem'))
app.component('CodeGroupItem', CodeGroupItem);
// compat with @vuepress/plugin-docsearch and @vuepress/plugin-search
app.component('VPSearch', () => {
const SearchComponent = app.component('Docsearch') || app.component('SearchBox');
if (SearchComponent) {
return h(SearchComponent);
}
return null;
});
// handle scrollBehavior with transition
const scrollBehavior = router.options.scrollBehavior;
router.options.scrollBehavior = async (...args) => {
await useScrollPromise().wait();
return scrollBehavior(...args);
};
},
setup() {
setupDarkMode();
setupSidebarItems();
},
layouts: {
Layout,
NotFound,
},
});