From 56a6240bf700ac307342ed494d8bfbabe5c822dc Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Wed, 19 Apr 2023 17:50:02 +0800 Subject: ✨docs init MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/composables/useDocSearch.ts | 11 ----- docs/composables/useDocus.ts | 88 ---------------------------------------- docs/composables/useMenu.ts | 5 --- docs/composables/useScrollspy.ts | 39 ------------------ 4 files changed, 143 deletions(-) delete mode 100644 docs/composables/useDocSearch.ts delete mode 100644 docs/composables/useDocus.ts delete mode 100644 docs/composables/useMenu.ts delete mode 100644 docs/composables/useScrollspy.ts (limited to 'docs/composables') diff --git a/docs/composables/useDocSearch.ts b/docs/composables/useDocSearch.ts deleted file mode 100644 index 646260d..0000000 --- a/docs/composables/useDocSearch.ts +++ /dev/null @@ -1,11 +0,0 @@ -export const useDocSearch = () => { - const { $docSearch } = useNuxtApp() - - if (!$docSearch) { - return { - hasDocSearch: ref(false) - } - } - - return $docSearch -} diff --git a/docs/composables/useDocus.ts b/docs/composables/useDocus.ts deleted file mode 100644 index f86c573..0000000 --- a/docs/composables/useDocus.ts +++ /dev/null @@ -1,88 +0,0 @@ -export const useDocus = () => { - const docus = computed(() => useAppConfig()?.docus || {}) - const { navPageFromPath, navDirFromPath, navKeyFromPath } = useContentHelpers() - const { navigation, page } = useContent() - const route = useRoute() - - /** - * Returns fallbacked values for `main`, `header`, `aside` and `footer`. - * - * It allows to configure `app.config` per page/_dir. - */ - const config = computed( - () => { - const titleTemplate = docus?.value?.titleTemplate || navKeyFromPath(page?.value?._path, 'titleTemplate', navigation.value || []) || `%s · ${docus?.value?.title || 'Docus'}` - const main = docus?.value?.main || {} - const header = docus?.value?.header || {} - const aside = docus?.value?.aside || {} - const footer = docus?.value?.footer || {} - - return { - // Raw appConfig - ...docus.value, - - // Merged attributes - titleTemplate, - main: { - ...main, - ...navKeyFromPath(route.path, 'main', navigation.value || []), - ...page.value?.main - } as typeof main, - header: { - ...header, - ...navKeyFromPath(route.path, 'header', navigation.value || []), - ...page.value?.header - } as typeof header, - aside: { - ...aside, - ...navKeyFromPath(route.path, 'aside', navigation.value || []), - ...page.value?.aside - } as typeof aside, - footer: { - ...footer, - ...navKeyFromPath(route.path, 'footer', navigation.value || []), - ...page.value?.footer - } as typeof footer - } - } - ) - - /** - * Current aside tree. - */ - const tree = computed(() => { - let nav = navigation.value || [] - const _path = route.path - const level = config?.value?.aside?.level || 0 - const filtered = config?.value?.aside?.exclude || [] - - if (level) { - // Filter if `aside.level` is enabled in docus configuration - const path = _path.split('/') - - // Get level - const leveledPath = path.splice(0, 1 + level).join('/') - - nav = navDirFromPath(leveledPath, nav) || [] - - if (!Array.isArray(nav)) { nav = [nav] } - } - - // No navigation found; try to resolve page url - if (nav.length === 0) { - nav = navPageFromPath(page.value?._path || '/', navigation.value || []) - - if (!nav) { return [] } - - if (!Array.isArray(nav)) { nav = [nav] } - } - - // Filtered using `aside.exclude` in docus configuration - return nav.filter((item: any) => { - if (filtered.includes(item._path)) { return false } - return true - }) - }) - - return { tree, config } -} diff --git a/docs/composables/useMenu.ts b/docs/composables/useMenu.ts deleted file mode 100644 index 804ddc6..0000000 --- a/docs/composables/useMenu.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const useMenu = () => { - const { $menu } = useNuxtApp() - - return $menu -} diff --git a/docs/composables/useScrollspy.ts b/docs/composables/useScrollspy.ts deleted file mode 100644 index 5962d0d..0000000 --- a/docs/composables/useScrollspy.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { Ref } from 'vue' - -/** - * Scrollspy allows you to watch visible headings in a specific page. - * Useful for table of contents live style updates. - */ -export const useScrollspy = () => { - const observer = ref() as Ref - const visibleHeadings = ref([]) as Ref - const activeHeadings = ref([]) as Ref - - const observerCallback = (entries: IntersectionObserverEntry[]) => - entries.forEach((entry) => { - const id = entry.target.id - - if (entry.isIntersecting) { visibleHeadings.value.push(id) } else { visibleHeadings.value = visibleHeadings.value.filter(t => t !== id) } - }) - - const updateHeadings = (headings: Element[]) => - headings.forEach((heading) => { - observer.value.observe(heading) - }) - - watch(visibleHeadings, (val, oldVal) => { - if (val.length === 0) { activeHeadings.value = oldVal } else { activeHeadings.value = val } - }, { deep: true }) - - // Create intersection observer - onBeforeMount(() => (observer.value = new IntersectionObserver(observerCallback))) - - // Destroy it - onBeforeUnmount(() => observer.value?.disconnect()) - - return { - visibleHeadings, - activeHeadings, - updateHeadings - } -} -- cgit v1.2.3-70-g09d2