diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index b0b6f4e51..ce19ccbf1 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -1,24 +1,30 @@ -import { type Theme } from 'vitepress' // Import the Theme type from VitePress -import DefaultTheme from 'vitepress/theme' // Import the default VitePress theme -import Layout from './Layout.vue' // Import the custom layout component -import Post from './PostLayout.vue' // Import the custom post layout component -import { loadProgress } from './composables/nprogress' // Import the loadProgress function -import './style.css' // Import the custom global CSS styles -import 'uno.css' // Import the uno.css library +// Import the necessary modules and components +import { type Theme } from 'vitepress' +import DefaultTheme from 'vitepress/theme' +import Layout from './Layout.vue' +import Post from './PostLayout.vue' +import { loadProgress } from './composables/nprogress' +import './style.css' +import 'uno.css' -// The custom VitePress theme +// Define the custom VitePress theme export default { - // Extend the default VitePress theme extends: DefaultTheme, - // Use the custom layout component Layout, - // Use the custom post layout component Post, - // The enhanceApp function is called after the VitePress app is mounted - enhanceApp({ router, app }) { - // Add the custom post layout component to the VitePress app - app.component('Post', Post) - // Call the loadProgress function with the router object as an argument - loadProgress(router) + // Add a setup function to configure the theme + setup() { + // Call the enhanceApp function to add the custom post layout component and load the progress bar + this.enhanceApp({ + router: this.router, + app: this.app, + // Define the mount function to be called after the VitePress app is mounted + mount(app) { + // Add the custom post layout component to the VitePress app + app.component('Post', Post) + // Call the loadProgress function with the router object as an argument + loadProgress(this.router) + } + }) } } satisfies Theme