"use client" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { BookOpen, Code, FileText, Hash, Settings, Tag, ArrowRight, Info, Users } from "lucide-react" import CodeHighlighter from "@/components/SyntaxHighlighter" import Header from "@/components/Header" import Sidebar from "@/components/Sidebar" import TableOfContents from "@/components/TableOfContents" import Link from "next/link" import { jsdocData } from "@/lib/jsdoc-data" const navigationSections = [ { id: "basic-tags", title: "Basic Tags", description: "Essential JSDoc tags for documenting your code", icon: Tag, href: "/basic-tags", }, { id: "parameters", title: "Parameters & Returns", description: "Document function parameters, return values, and exceptions", icon: Code, href: "/parameters", }, { id: "type-definitions", title: "Type Definitions", description: "Define and document custom types and interfaces", icon: Hash, href: "/type-definitions", }, { id: "functions", title: "Functions & Classes", description: "Document functions, classes, constructors, and methods", icon: Settings, href: "/functions", }, { id: "modules", title: "Modules & Namespaces", description: "Organize code with modules, namespaces, and membership", icon: FileText, href: "/modules", }, { id: "advanced", title: "Advanced Tags", description: "Advanced JSDoc features for complex documentation needs", icon: BookOpen, href: "/advanced", }, { id: "objects", title: "Objects & Interfaces", description: "Document object structures, interfaces, and inheritance", icon: Hash, href: "/objects", }, { id: "documentation", title: "Documentation Tags", description: "Tags for linking, examples, and additional documentation", icon: Info, href: "/documentation", }, { id: "examples", title: "Complete Examples", description: "Real-world JSDoc documentation examples", icon: Info, href: "/examples", }, { id: "best-practices", title: "Best Practices", description: "Guidelines for writing effective JSDoc documentation", icon: Users, href: "/best-practices", }, ] export default function JSDocCheatsheet() { // TOC items for the homepage const tocItems = [ { id: "quick-reference", title: "Quick Reference", level: 1 }, { id: "kitchen-sink", title: "Kitchen Sink Example", level: 1 }, { id: "navigation-grid", title: "Explore JSDoc Sections", level: 1 }, ] return (
{/* Quick Reference */} Quick Reference Essential JSDoc tags you'll use most frequently

Basic Tags

@description @author @version @since @deprecated

Parameters & Returns

@param @returns @throws @yields

Types & Properties

@typedef @property @type @enum

Functions & Classes

@function @class @constructor @method @static @override

Modules & Namespaces

@module @namespace @memberof @exports @requires

Objects & Interfaces

@interface @implements @extends @mixin

Events & Callbacks

@callback @event @fires @listens @mixes

Documentation & Links

@example @see @link @tutorial @todo

Advanced Features

@abstract @async @generator
{/* Kitchen Sink Example */} Kitchen Sink Example A comprehensive example showcasing multiple JSDoc features in one code block {/* Navigation Grid */}
{navigationSections.map((section) => { const Icon = section.icon return (
{section.title} {section.description}
) })}
{/* Footer */}
) }