فهرست مطالب (Table of Contents) برای فایلهایی که با @nuxt/content ساخته شدهاند. این نسخه با @nuxt/content v2 و v3 سازگار است.
مستندات کامل: https://thaikolja.github.io/nuxt-toc/
English · 中文 · Deutsch · Español · Français · فارسی
- Content v2 (
queryContent) و v3 (queryCollection) - پاس دادن
:toc(پیشنهادی) یا واکشی خودکار اختیاری - کنترل عمق لینکهای تو در تو
- هایلایت بخش فعال (scroll-spy)
- اسکرول نرم اختیاری و آفست برای هدر چسبان
- کلاسها و idهای CSS پایدار برای تمبندی
- ساختار لیست دسترسپذیر
# افزودن به سایت موجود
npx nuxi module add nuxt-toc
# یا نصب دستی
npm install nuxt-tocاگر nuxt-toc را با nuxi module نصب کردهاید، میتوانید این مرحله را رد کنید.
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['nuxt-toc', '@nuxt/content'],
})ترجیح دهید TOC را از کوئری صفحه پاس دهید. API را با نسخه @nuxt/content خود هماهنگ کنید.
<script setup lang="ts">
const route = useRoute()
// @nuxt/content v3:
const { data: page } = await useAsyncData(route.path, () =>
queryCollection('content').path(route.path).first(),
)
// @nuxt/content v2
// queryContent(route.path).findOne()
</script>
<template>
<ContentRenderer v-if="page" :value="page" />
<TableOfContents :toc="page?.body?.toc" />
</template>یا واکشی خودکار بر اساس مسیر:
<TableOfContents path="/docs/intro" />| Prop | نوع | پیشفرض | توضیح |
|---|---|---|---|
toc |
Toc | null |
null |
TOC از پیشواکشیشده (page.body.toc). در صورت تنظیم، fetch انجام نمیشود. |
path |
string |
'' |
مسیر واکشی خودکار (پیشفرض: مسیر فعلی). |
collection |
string |
'' |
کالکشن Content v3 (پیشفرض: nuxtToc.collection / content). |
depth |
number |
2 |
حداکثر عمق درخت لینکها (1 = فقط سطح بالا). |
isSublistShown |
boolean |
true |
در صورت false، عمق را به 1 محدود میکند. |
isTitleShownWithNoContent |
boolean |
false |
نمایش عنوان حتی وقتی لینکی وجود ندارد. |
title |
string |
'Table of Contents' |
متن عنوان. |
scrollSpy |
boolean |
true |
هایلایت بخش فعال. |
rootMargin |
string |
'0px 0px -80% 0px' |
مقدار rootMargin برای IntersectionObserver. |
smooth |
boolean |
false |
اسکرول نرم هنگام کلیک روی لینک. |
scrollOffset |
number |
0 |
آفست اسکرول به پیکسل (هدر چسبان). |
nuxt-toc را با تنظیمات زیر سفارشی کنید (مقادیر زیر پیشفرض هستند).
export default defineNuxtConfig({
nuxtToc: {
collection: 'content',
depth: 2,
scrollSpy: true,
rootMargin: '0px 0px -80% 0px',
smooth: false,
scrollOffset: 0,
},
})برای یادگیری بیشتر درباره nuxt-toc، نحوه استفاده و استایلدهی، مستندات کامل را ببینید. راهنماها، دستورالعملها و موارد بیشتر آنجا هستند.
این پروژه تحت مجوز MIT منتشر شده است.