- Category
- Developer Tools
- Rank
- No. 792Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- denoland
- GitHub
- 297 stars
- Latest release
- 0.207.0
- Date
About
Documentation generator for Deno modules — extracts API docs from TypeScript/JavaScript source.
What it does
It turns a module graph into a structured model of symbols, declarations, imports, source locations, types, and JSDoc. Consumers can serialize that model, print readable signatures, or render full HTML pages and smaller fragments.
Why it's ranked here
A strong foundation for custom documentation systems. It handles module relationships, re-exports, merged declarations, detailed TypeScript shapes, and rich JSDoc instead of stopping at comments. The same core also supports Rust and JavaScript-facing integrations.
What's good
The document model preserves useful structure: multiple declarations can share one symbol, imports remain distinct, and locations include line, column, and byte offset. Tests cover content types, type headers, renamed re-exports, deep re-exports, and merged class-interface names. Markdown rendering is pluggable.
Tradeoffs
This is infrastructure for building documentation tooling, not merely a polished standalone app. HTML customization exposes many concerns, including links, Markdown, usage composition, redirects, search, and injected head content. Some expression details are intentionally unsupported or omitted when printing parameter defaults.
How to use it well
Choose it when a Rust or Deno-based tool needs a faithful, reusable documentation model or custom HTML output. Feed it a resolved module graph, then own the presentation and delivery workflow around it. It does not provide documentation hosting or a publishing service.
Technical notes+
Cargo.toml defines the main Rust library, default rust and comrak features, WASM-specific dependencies, and explicit spec test targets. src/lib.rs exports DocParser, DocPrinter, the document types, recursive symbol lookup, and docnodes_v1_to_v2. src/node.rs models documents as module docs, imports, and grouped symbols with tagged declaration definitions. lib/lib.rs supplies WASM bindings: doc builds a types-only ModuleGraph through JavaScript loader and resolver callbacks, while generate_html accepts link, Markdown, usage, redirect, and search configuration. src/tests.rs exercises parsing, re-exports, merged declarations, type headers, serialization, and printing.
Observed
- License
- MIT
- Primary language
- Rust
- Packaging
- Published as a Rust crate on crates.io and a JavaScript package on JSR
- Interfaces
- Rust library, WebAssembly-backed JavaScript API, and a standalone example binary
- Target environments
- Used by Deno tooling and described as suitable for Node or browser documentation generators
- Output surfaces
- Structured serialized documents, printed signatures, full HTML pages, and HTML fragments
- Testing
- Rust unit and specification tests plus Deno tests and HTML snapshot testing
Read from README.md, deno.json, Cargo.toml, src/lib.rs, lib/lib.rs, src/enum.rs, src/node.rs, src/class.rs, src/tests.rs, src/js_doc.rs, src/params.rs.
What it can do
Extract API documentation from TypeScript source code
TypeScript files → API documentation
Extract API documentation from JavaScript source code
JavaScript files → API documentation
Generate documentation for Deno modules
Deno module source code → Module documentation
Parse JSDoc comments from source files
Source files with JSDoc comments → Structured documentation data
Extract type information from TypeScript interfaces
TypeScript interface definitions → Type documentation
Generate documentation for exported functions
Source files with exported functions → Function documentation
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
