9 changed files with 138 additions and 26 deletions
@ -0,0 +1,40 @@ |
|||||||
|
<template> |
||||||
|
<aside v-if="toc" class="position-fixed toc shadow"> |
||||||
|
<h5 class="text-center">{{ toc.title }}</h5> |
||||||
|
<ul class="font-smaller mb-0"> |
||||||
|
<li> |
||||||
|
<a href="#">Overview</a> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
<ArticlesTableOfContentsLink :links="toc.links" :first="true" class="font-smaller mb-0" /> |
||||||
|
</aside> |
||||||
|
</template> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
.toc { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
@media (min-width: 1450px) { |
||||||
|
.toc { |
||||||
|
display: block; |
||||||
|
width: calc((100vw - 960px) / 2 - 35px); |
||||||
|
max-width: 300px; |
||||||
|
top: 56px; |
||||||
|
left: calc(100vw - (100vw - 960px) / 2 + 12px); |
||||||
|
padding: 20px 5px 20px 0; |
||||||
|
border-radius: 6px; |
||||||
|
background-color: #fff; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.font-smaller { |
||||||
|
font-size: .8125rem; |
||||||
|
} |
||||||
|
</style> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import type { Toc } from "@nuxtjs/mdc"; |
||||||
|
|
||||||
|
defineProps<{ toc?: Toc }>(); |
||||||
|
</script> |
@ -0,0 +1,18 @@ |
|||||||
|
<template> |
||||||
|
<ul> |
||||||
|
<template v-for="link in links" :key="link.id"> |
||||||
|
<li> |
||||||
|
<a :href="'#' + link.id">{{ link.text }}</a> |
||||||
|
</li> |
||||||
|
<template v-if="link.children && link.children?.length > 0"> |
||||||
|
<ArticlesTableOfContentsLink :links="link.children" :first="false" /> |
||||||
|
</template> |
||||||
|
</template> |
||||||
|
</ul> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import type { TocLink } from "@nuxtjs/mdc"; |
||||||
|
|
||||||
|
defineProps<{ links: TocLink[] }>(); |
||||||
|
</script> |
Loading…
Reference in new issue