💄 Better docs page
This commit is contained in:
		| @@ -17,23 +17,57 @@ | ||||
|         </article> | ||||
|       </div> | ||||
|  | ||||
|       <div class="docs-widgets"> | ||||
|         <v-card title="Table of Contents" prepend-icon="mdi-table-of-contents" density="comfortable"> | ||||
|           <div class="mt-[-8px]"> | ||||
|             <docs-table-of-contents :links="page.body.toc.links" /> | ||||
|           </div> | ||||
|         </v-card> | ||||
|       </div> | ||||
|       <v-navigation-drawer app v-model="drawerOpen" floating location="right" width="320"> | ||||
|         <v-tabs v-model="drawerTab" hide-slider align-tabs="center"> | ||||
|           <v-tab :value="1"> | ||||
|             <v-icon icon="mdi-table-of-contents" /> | ||||
|           </v-tab> | ||||
|           <v-tab :value="2"> | ||||
|             <v-icon icon="mdi-information" /> | ||||
|           </v-tab> | ||||
|         </v-tabs> | ||||
|  | ||||
|         <v-divider class="border-opacity-50 mb-1" /> | ||||
|  | ||||
|         <v-tabs-window v-model="drawerTab"> | ||||
|           <v-tabs-window-item :value="1"> | ||||
|             <docs-table-of-contents v-if="page.body.toc.links?.length > 0" :links="page.body.toc.links" /> | ||||
|             <v-empty-state v-else text="No Headers Available" /> | ||||
|           </v-tabs-window-item> | ||||
|           <v-tabs-window-item :value="2"> | ||||
|             <div class="flex flex-col gap-2"> | ||||
|               <div> | ||||
|                 <p><b>Created By</b></p> | ||||
|               </div> | ||||
|             </div> | ||||
|           </v-tabs-window-item> | ||||
|         </v-tabs-window> | ||||
|       </v-navigation-drawer> | ||||
|  | ||||
|       <v-fab | ||||
|         app | ||||
|         appear | ||||
|         location="bottom end" | ||||
|         variant="plain" | ||||
|         :key="'docs-fab-'+drawerOpen" | ||||
|         :icon="drawerOpen ? 'mdi-arrow-collapse-right' : 'mdi-menu'" | ||||
|         @click="drawerOpen = !drawerOpen" | ||||
|       /> | ||||
|     </div> | ||||
|   </v-container> | ||||
| </template> | ||||
|  | ||||
| <script setup lang="ts"> | ||||
| import { definePageMeta } from "#imports" | ||||
|  | ||||
| const route = useRoute() | ||||
|  | ||||
| const { t } = useI18n() | ||||
| const { data: page } = await useAsyncData<any>("page", queryContent(route.path).where({ _locale: getLocale() }).findOne) | ||||
|  | ||||
| const drawerTab = ref(0) | ||||
| const drawerOpen = ref(false) | ||||
|  | ||||
| if (page.value == null) { | ||||
|   throw createError({ | ||||
|     status: 404, | ||||
| @@ -41,6 +75,10 @@ if (page.value == null) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| definePageMeta({ | ||||
|   layout: "docs", | ||||
| }) | ||||
|  | ||||
| useHead({ | ||||
|   title: page.value.title, | ||||
|   titleTemplate: "%s | Solsynth Knowledge Base", | ||||
| @@ -58,39 +96,13 @@ useSeoMeta({ | ||||
| </script> | ||||
|  | ||||
| <style scoped> | ||||
| .docs-page-container { | ||||
|   position: relative; | ||||
| } | ||||
|  | ||||
| @media (min-width: 768px) { | ||||
|   .docs-container { | ||||
|     display: flex; | ||||
|     flex-direction: row; | ||||
|     gap: 1rem; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @media (max-width: 768px) { | ||||
|   .docs-container { | ||||
|     display: flex; | ||||
|     flex-direction: column-reverse; | ||||
|     gap: 1rem; | ||||
|   } | ||||
| } | ||||
|  | ||||
| .docs-content { | ||||
|   flex: 1 360px; | ||||
| } | ||||
|  | ||||
| .docs-article { | ||||
|   padding-bottom: 2rem; | ||||
| } | ||||
|  | ||||
| .docs-widgets { | ||||
|   flex: 1; | ||||
|   display: flex; | ||||
|   flex-direction: column; | ||||
|   gap: 1rem; | ||||
| .docs-content { | ||||
|   max-width: 75ch; | ||||
|   margin: 0 auto; | ||||
| } | ||||
| </style> | ||||
|  | ||||
| @@ -99,6 +111,7 @@ useSeoMeta({ | ||||
|   border-radius: 8px; | ||||
| } | ||||
|  | ||||
|  | ||||
| html, body, .v-application, .docs-article { | ||||
|   scroll-behavior: smooth; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user