Awesome
Awesome JSDoc
A list of awesome JSDoc <sub><sup>(GitHub)</sup></sub> plugins, resources, etc.
Contents
- Formatting
- Learning
- Documentation
- Articles
- Linting
- Markdown
- Parsing and Stringifying
- Schema usage
- Type checking
- Visualizations
Formatting
- eslint-plugin-isaacscript - Format JSDoc comments
Learning
- jsdoc - Site creating original standard and a documentation tool.
- TypeScript docs on jsdoc - Supported JSDoc in TypeScript (TypeScript-flavor JSDoc); note especially the need for parentheses around casts!
- TypeScript docs for working with JavaScript files - Reference on working with plain JavaScript files to convert to declaration files (*.d.ts).
- Closure on tags - Closure's reference on its JSDoc tag usage.
- Closure on types - Closure's reference on its JSDoc type usage.
Documentation
- typedoc - Create documentation using the TypeScript flavor of JSDoc (including documentation of plain JavaScript)
- typedoc-plugin-missing-exports - Ensure typedoc gets referenced, non-exported items documented in addition to exported items.
Articles
Linting
- eslint-plugin-jsdoc - ESLint rules for JSDoc blocks.
Markdown
- Official Markdown plugin (converting Markdown syntax within jsdoc when building jsdoc)
- jsdoc-to-markdown (Generating Markdown docs from JSDoc)
- jsdoc-md (Generating Markdown docs from JSDoc)
Parsing and Stringifying
- comment-parser - JSDoc-like parsing and stringifying (to be semantically aware of jsdoc's tags, you will need to supply a custom parser like in eslint-plugin-jsdoc).
- @es-joy/jsdoccomment - Allows
JSDoc-aware tag semantics on top of
comment-parser
. Also has a number of utilities, e.g., converting parser AST to ESLint AST and VisitorKeys. - @es-joy/jsdoc-eslint-parser - A
proof-of-concept ESLint parser integrating
@babel/eslint-parser
,comment-parser
(via@es-joy/jsdoccomment
), andjsdocttypeparser
.
Type parsing
- jsdoc-type-pratt-parser
- jsdoctypeparser - JSDoc type
parser/stringifier/traverser used in
eslint-plugin-jsdoc
which also supports some TypeScript. - catharsis - JSDoc type parser used within jsdoc itself.
Schema usage
- json-schema-to-jsdoc - Converts from JSON Schema to JSDoc.
- jsdoc-jsonschema - Converts from
jsdoc to JSON Schema (early in project, but aims to
use standard
@typedef
).
Type checking
- typescript - Check plain JavaScript with
TypeScript by using
allowJs
andcheckJs
intsconfig.json
. - bycontract - Validate structures with jsdoc expressions.
- eslint-plugin-typelint - Allows JSON Schema (or Redux reducer) to be pointed to by jsdoc types with usage type-checked.
- tern - Checking type usage against jsdoc.
(Also interesting for notion of implicit typing--might there be a static
but implicitly typed, ESLint-enforced subset of JavaScript (like
asm.js
) which can compile to more performant code without need to pollute code with types everywhere?.)
Visualizations
- jsdoc2diagram - Create (D3) diagram from your project's jsdoc.