TypeDoc के साथ शुरुआत

TypeScript projects के लिए, theme एक TypeDoc plugin के रूप में ship होता है — @clean-jsdoc-theme/typedoc। यह TypeDoc के default को विस्तृत करने वाला कोई CSS theme नहीं है; यह एक custom output register करता है जो TypeDoc की reflections को उसी setu → dwar pipeline से गुज़ारता है जिससे JSDoc bridge गुज़ारता है। नतीजा एक समान site है — SSR HTML, islands, fuzzy + full-text search, साथी .md — जो आपके TypeScript sources से generate होती है।

यह कैसे जुड़ता है। plugin का load(app) एक option block (cleanJsdocTheme, देखें options.ts) घोषित करता है और app.outputs.addOutput(...) के ज़रिए clean-jsdoc-theme नाम का एक output register करता है। writer (write-site.ts) reflections → doclets → साझा pipeline में ढाल देता है। तो आप इसे दो तरह से चुनते हैं: plugin इसे load करता है, outputs इसे चालू करता है।

Install और build

  1. 1
    Install

    TypeDoc और theme के TypeDoc plugin को dev dependencies के रूप में install करें:

    CODE
    npm install --save-dev typedoc @clean-jsdoc-theme/typedoc
  2. 2
    Configure

    एक typedoc.json जोड़ें। plugin को load करें, इसे एक output के रूप में चुनें, और theme options को cleanJsdocTheme key के नीचे रखें (JSDoc के opts का TypeDoc समतुल्य):

    CODE
    {
      entryPoints: ["src/index.ts"],
      tsconfig: "tsconfig.json",
      readme: "README.md",
    
      // plugin को load करें, फिर render करने के लिए उसका output चुनें।
      plugin: ["@clean-jsdoc-theme/typedoc"],
      outputs: [{ name: "clean-jsdoc-theme", path: "dist" }],
    
      // Theme options यहाँ रहते हैं।
      cleanJsdocTheme: {
        siteName: "My Library",
      },
    }
  3. 3
    Build

    TypeDoc चलाएँ — यह register किए गए output को outputs[].path पर render करता है:

    CODE
    npx typedoc
  4. 4
    Serve

    dist/index.html खोलें, या folder को serve करें (Pagefind का full-text index load होने के लिए HTTP चाहिए):

    CODE
    npx serve dist

एक पूर्ण, चलने-योग्य TypeDoc setup repo में examples/typedoc-basic पर मौजूद है — इसकी typedoc.json ऊपर दिए गए setup का reference है।

options कहाँ जाते हैं

हर theme option JSDoc वाले जैसा ही है — सिर्फ़ स्थान अलग है: opts के बजाय cleanJsdocTheme के नीचे। पूरी सूची, दोनों रूपों के साथ-साथ, Configuration page पर है। शुरुआत के लिए कुछ:

Optionयह क्या करता है
siteNameHeader का title — सादा text, या alt fallback text के साथ एक light/dark logo set।
fontsheading / body (Google Fonts, आपके लिए load होते हैं) और mono को override करें।
colors / darkColorslight / dark palettes को फिर से रंगें — सिर्फ़ bg, accent, … override करें, बाक़ी रहने दें।
sectionOrdertop-level sidebar sections का क्रम तय करें।
clubSidebarItemsसंबंधित entries को एक साझा, collapsible parent के नीचे समेटें।
menusidebar के ऊपर pin किए गए custom links, हर एक के साथ एक lucide: / simpleicons: icon।
copyPageप्रति-page "copy page" / "open in LLM" button (default में on)।

चूँकि cleanJsdocTheme एक समर्पित namespace है, इसके भीतर अनजान keys सिर्फ़ warn करती हैं (एक "did you mean?" संकेत के साथ) — इसे error तक बढ़ाने के लिए strict देखें।

कई भाषाएँ

localization workflow अपनी locales को उसी cleanJsdocTheme block में declare करता है (locales + defaultLocale) और clean-jsdoc CLI के ज़रिए चलता है — देखें अपने docs को localize करें और locales / defaultLocale reference।

आज TypeDoc bridge translation catalogs को extract कर सकता है पर प्रति-locale sites अभी render नहीं करता — localized builds फ़िलहाल केवल JSDoc के लिए हैं। एकल-भाषा TypeDoc site पूरी तरह समर्थित है।

आगे के कदम