Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
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 filesAPI documentation

  • Extract API documentation from JavaScript source code

    JavaScript filesAPI documentation

  • Generate documentation for Deno modules

    Deno module source codeModule documentation

  • Parse JSDoc comments from source files

    Source files with JSDoc commentsStructured documentation data

  • Extract type information from TypeScript interfaces

    TypeScript interface definitionsType documentation

  • Generate documentation for exported functions

    Source files with exported functionsFunction documentation

Tags

denodocumentationtypescriptrustdev-tools

Tech Stack

RustTailwind CSS

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.