useContent()
This composable will only be enabled if you toggle the Document-driven feature!
Usage
useContent()
is available everywhere in your app and gives access to a list of refs based on your content.
<script setup lang="ts">const { // Global references globals, navigation, surround, page, // Computed properties from `page` key excerpt, toc, type, layout, // Computed properties from `surround` key next, prev} = useContent()</script>
Examples
Rendering the page
Rendering the current page becomes a bliss with this composable:
pages/[...slug].vue
<script setup lang="ts">const { page } = useContent()</script><template> <ContentRenderer :key="page._id" :value="page" /></template>
Creating a previous/next page component
PagePrevNext.vue
<script setup lang="ts">const { prev, next } = useContent()</script><template> <div> <NuxtLink v-if="prev" :to="prev._path">{{ prev.title }}</NuxtLink> <NuxtLink v-if="next" :to="next._path">{{ next.title }}</NuxtLink> </div></template>
Creating a Table of Contents component
PageToc.vue
<script setup lang="ts">const { toc } = useContent()</script><template> <div> <ul v-if="toc && toc.links"> <li v-for="link in toc.links" :key="link.text"> <a :href="`#${link.id}`" > {{ link.text }} </a> </li> </ul> </div></template>