consolelog.tools

JSDoc to Markdown

Paste JavaScript or TypeScript with JSDoc and get clean, ready-to-ship Markdown API docs. The tolerant parser handles functions, classes and methods, and typedefs/interfaces across a broad tag set — @param (with {type}, [name=default] and nested options), @returns, @throws, @example, @template, @deprecated, @since, @see and access modifiers — emitting heading-per-symbol docs with signature blocks, parameter tables, async/deprecated badges and a linked table of contents. A live parse report shows every symbol found and flags params missing a description.

About this ToolHow it works, benefits & use cases

Paste JavaScript or TypeScript that contains JSDoc comments and this tool turns them into clean, ready-to-ship Markdown API documentation. A tolerant parser reads each /** ... */ block together with the declaration that follows it, so it can tell whether a symbol is a function, a class and its methods, a typedef, an interface, or a constant, and infer the signature from the source. It understands a broad tag set: @param (with {type}, optional [name=default] brackets, and nested options.x rows), @returns / @return, @throws, @example, @template, @deprecated, @since, @see, @default and the @public / @private / @protected access modifiers. For each symbol it emits a heading, an optional fenced signature block, a parameter table with Name, Type, Default and Description columns, returns and throws sections, examples as fenced code, async and deprecated badges, and — when more than one symbol is documented — a linked table of contents. A live parse report lists every symbol found and flags any parameter declared without a description. Choose GitHub-flavored or plain Markdown, set the heading level and title, toggle the table of contents, signature blocks, badges and private symbols, and the whole configuration is captured in a shareable URL. Conversion runs entirely in your browser.

How to Use

  1. 1Paste JavaScript or TypeScript containing JSDoc comments into the input, or load one of the examples (functions, a class with methods, or a typedef).
  2. 2The Markdown regenerates live as you type — no Run button needed.
  3. 3Tune the output style: GitHub vs plain flavor, heading level, title, table of contents, signature blocks, badges, and whether private symbols are included.
  4. 4Check the parse report for the symbols found by kind and any parameters missing a description.
  5. 5Copy the Markdown, download it as a .md file, or share the input and settings via the generated link.

Key Benefits

  • Documents functions, classes and methods, typedefs, interfaces and constants from one paste
  • Broad tag support: @param, @returns, @throws, @example, @template, @deprecated, @since, @see, @default and access modifiers
  • Parameter tables with type, default and description, including nested options.x rows
  • Async and deprecated badges, plus a linked table of contents for multi-symbol docs
  • GitHub-flavored or plain Markdown, configurable heading level and title
  • Live parse report surfaces every symbol and warns about undocumented parameters
  • Shareable URL captures the source and every style option; fully in-browser

Common Use Cases

  • Turning the JSDoc on a utility library into a README API reference
  • Generating Markdown docs for a docs site from annotated source
  • Producing a parameter table for a function to paste into a PR or design doc
  • Surfacing @deprecated notices and version history in human-readable documentation
  • Documenting an internal SDK or class without setting up a full doc-generation pipeline

Generated Markdown API reference

# API Reference

**Contents**

- [add](#add)
- [getUser](#getuser)

## function add

Calculate the sum of two numbers.

```ts
function add(a, b)
```

### Parameters

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `a` | `number` | - | The first number. |
| `b` | `number` | - | The second number. |

### Returns

**Type:** `number` — The sum of a and b.

### Example

```js
add(5, 3); // => 8
```

---

## function getUser `⚠ deprecated` `async`

> **⚠️ Deprecated:** Use fetchUserById instead.

Fetch a user from the API.

```ts
async function getUser(userId, options = {})
```

### Parameters

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `userId` | `string` | - | The user ID. |
| `options` _(optional)_ | `Object` | - | Optional configuration. |
|   ↳ `options.cache` _(optional)_ | `boolean` | true | Enable caching. |

### Returns

**Type:** `Promise<Object>` — The user record.

### Throws

- `Error` — If the user is not found.

**See:** fetchUserById

**Since:** 1.2.0

Parse report

2symbols2function1deprecated

Source with JSDoc

Tip: keep each /** … */ block directly above its declaration so the parser can infer the signature and symbol kind.

Output style

top heading

when >1 symbol

fenced code

async / deprecated

@private symbols

A tolerant parser, not a strict one

Each /** … */ block is read together with the declaration that follows it, so the tool infers whether a symbol is a function, a class and its methods, a typedef or an interface — and emits a matching heading, signature and table.

Broad tag support

It understands @param (with {type}, [name=default] and nested options.x rows), @returns, @throws, @example, @template, @deprecated, @since, @see, @default and access modifiers, degrading gracefully on anything it does not recognise.

Was this tool helpful?

Share Your Experience

Help others discover this tool!

Related tools