@category — sidebar में किसी symbol को group करें

@category किसी symbol के generated page को उसके default kind section (Classes, Modules, Namespaces, …) के बजाय एक स्पष्ट sidebar group में रखता है:

CODE
/**
 * @category Core
 */
export class Parser {}

अब Parser Classes के नीचे नहीं, बल्कि एक Core group के नीचे रहता है।

@category एक unknown tag है — अपने jsdoc.json में tags.allowUnknownTags: true सेट करें वरना JSDoc theme के चलने से पहले उसे छील देता है। देखें overview। (TypeDoc को किसी flag की ज़रूरत नहीं।)

Path grammar

parseCategory (in generate-site.ts) tag text को whitespace पर विभाजित करता है, फिर:

  • सादे tokens की अग्रणी श्रृंखला ही group path है, जो एकल space से जुड़ी होती है।
  • Parsing पहले ऐसे token पर options में बदल जाती है जिसमें = हो। वहाँ से आगे की हर चीज़ key=value है।
  • एक शाब्दिक / ही वह चीज़ है जो किसी group को nest करती है। Spaces nest नहीं करते।

नाम में spaces बने रहते हैं; / nest करता है

यह सूक्ष्म हिस्सा है। एक space केवल group नाम का हिस्सा है — केवल / एक parent ▸ child सम्बन्ध बनाता है।

CODE
/** @category Getting Started */
export class Intro {}

→ एक सपाट group जिसका नाम शाब्दिक रूप से Getting Started है (space रखा जाता है)।

CODE
/** @category Core/Parsing */
export class Lexer {}

→ page को Core ▸ Parsing के नीचे nest करता है।

आप जितना चाहें उतना गहरा nest कर सकते हैं — @category Core/Parsing/InternalsCore ▸ Parsing ▸ Internals

पहला @category जीतता है

अगर किसी symbol के पास एक से अधिक @category हों, तो पहला उपयोग होता है; बाक़ी को अनदेखा कर दिया जाता है।

Inline order=

आज @category का एकमात्र option order है — within-group sort key:

CODE
/** @category Core/Parsing order=1 */
export class Lexer {}

/** @category Core/Parsing order=2 */
export class Token {}

Lexer Core ▸ Parsing के अंदर Token से पहले क्रमबद्ध होता है। path अग्रणी tokens है; options पहले = के बाद आते हैं, इसलिए Getting Started order=1 Getting Started group है जिसका order=1 है।

एक अनुपस्थित या non-numeric order undefined छोड़ दिया जाता है — तब page अंत में, alphabetically, क्रमबद्ध होता है, जैसे एक untagged।

हल किए गए उदाहरण

CODE
/** @category Core */
export class A {}                 // → Core

/** @category Core/Schema order=1 */
export class Point {}             // → Core ▸ Schema, first

/** @category Data Pipeline */
export class Stage {}             // → "Data Pipeline" (one group; space kept)

/** @category Advanced/Internals order=10 */
export class Cache {}             // → Advanced ▸ Internals, order 10

@order के साथ संयोजन

@category पर inline order= और स्वतंत्र @order tag दोनों उसी sort key को feed करते हैं। जब किसी symbol के पास दोनों हों, तो inline @category … order= जीतता है — देखें @order page पर precedence नियम

यह sidebar को कैसे आकार देता है

@category theme के एकल sidebar-ordering engine में एक lever है — हर entry एक group path और एक वैकल्पिक order ढोती है। इसका prose समकक्ष किसी guide page का group frontmatter है (वही /-nesting नियम)। पूरा model — nested paths, leaf-vs-branch ordering, clubSidebarItems, sectionOrder, docGroups, और menuStructure your sidebar में है।

ये भी देखें

  • Components overview — पूरी tag सूची + allowUnknownTags
  • @order — बिना किसी category के symbols को क्रमबद्ध करना।
  • Structure your sidebar — groups + order कैसे जुड़ते हैं।