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
- 1Install
TypeDoc और theme के TypeDoc plugin को dev dependencies के रूप में install करें:
CODEnpm install --save-dev typedoc @clean-jsdoc-theme/typedocCODEpnpm add -D typedoc @clean-jsdoc-theme/typedoc - 2Configure
एक
typedoc.jsonजोड़ें। plugin को load करें, इसे एक output के रूप में चुनें, और theme options कोcleanJsdocThemekey के नीचे रखें (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", }, } - 3Build
TypeDoc चलाएँ — यह register किए गए output को
outputs[].pathपर render करता है:CODEnpx typedoc - 4Serve
dist/index.htmlखोलें, या folder को serve करें (Pagefind का full-text index load होने के लिए HTTP चाहिए):CODEnpx serve dist
एक पूर्ण, चलने-योग्य TypeDoc setup repo में
examples/typedoc-basicपर मौजूद है — इसकीtypedoc.jsonऊपर दिए गए setup का reference है।
options कहाँ जाते हैं
हर theme option JSDoc वाले जैसा ही है — सिर्फ़ स्थान अलग है: opts के बजाय cleanJsdocTheme के नीचे। पूरी सूची, दोनों रूपों के साथ-साथ, Configuration page पर है। शुरुआत के लिए कुछ:
| Option | यह क्या करता है |
|---|---|
siteName | Header का title — सादा text, या alt fallback text के साथ एक light/dark logo set। |
fonts | heading / body (Google Fonts, आपके लिए load होते हैं) और mono को override करें। |
colors / darkColors | light / dark palettes को फिर से रंगें — सिर्फ़ bg, accent, … override करें, बाक़ी रहने दें। |
sectionOrder | top-level sidebar sections का क्रम तय करें। |
clubSidebarItems | संबंधित entries को एक साझा, collapsible parent के नीचे समेटें। |
menu | sidebar के ऊपर 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 पूरी तरह समर्थित है।
आगे के कदम
- Build an API reference — क्या एक page बनता है और source-file viewer कैसे काम करता है।
- Build a guides site और Combine guides + API — उसी site में हाथ से लिखे Markdown जोड़ें।
- Structure your sidebar — grouping और ordering के levers।
- Authoring — callouts, steps, tabs, और embeds।
- अपने docs को localize करें — कई-भाषा workflow (extract TypeDoc पर काम करता है; localized builds आज केवल JSDoc के लिए हैं)।
- Packages — साझा
setu → dwarpipeline (और@clean-jsdoc-theme/typedocplugin) पर्दे के पीछे कैसे काम करते हैं।