
Product
Reachability for Ruby Now in Beta
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.
documentation
Advanced tools
A documentation generation system that's beautiful by default, flexible across formats and styles, and powerful enough to support JSDoc's advanced syntax.
ES5 and ES6 support of JavaScript, with support for other transpilers a possibility
Using espree, we have support for a wide range of ES6 features.
Support for C++
You can use the --polyglot mode of documentationjs to document native node.js
modules in JSDoc within the C++ code that implements the feature.
Support for following dependency trees
Using module-deps, documentation can
crawl require() graphs - pointing it to your app's main file will find all
referenced files and include all of their documentation.
GitHub Integration
The --github option automatically permalinks documentation to the exact
sections of code it refers to in a GitHub repository.
Gulp integration
The gulp-documentation project
lets you run documentation as a Gulp build task.
Getting_Started: start here
Usage: how to use documentation.js
Recipes: tricks for writing effective JSDoc docs
Node API: documentation.js's self-generated documentation
Theming HTML: tips for theming documentation output in HTML
See also: a list of projects similar to documentation.js
Globally install documentation using the npm package manager:
$ npm install -g documentation
This installs a command called documentation in your path, that you can
point at JSDoc-annotated source code to generate
human-readable documentation. First run documentation with the -h
option for help:
$ documentation -h
Usage: documentation <command> [options]
Options:
-f, --format output format, of [json, md, html] [default: "json"]
--lint check output for common style and uniformity mistakes
-t, --theme specify a theme: this must be a valid theme module
-p, --private generate documentation tagged as private
--name project name. by default, inferred from package.json
--version project version. by default, inferred from package.json
--shallow shallow mode turns off dependency resolution, only processing
the specified files (or the main script specified in
package.json) [default: false]
--polyglot polyglot mode turns off dependency resolution and enables
multi-language support. use this to document c++
-g, --github infer links to github in documentation
-o, --output output location. omit for stdout, otherwise is a filename for
single-file outputs and a directory name for multi-file
outputs like html [default: "stdout"]
-c, --config configuration file. an array defining explicit sort order
-h, --help Show help
Examples:
documentation foo.js parse documentation in a given file
We have plenty of issues that we'd love help with.
JSDoc support, including typedefs.documentation is an OPEN Open Source Project. This means that:
Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
3.0.0
The largest change to documentation.js so far.
Dropping streams
This a major refactor of the documentation.js interface with a focus on simplifying the system. Up until this point, documentation.js was built around node.js streams, which are low-level representations of asynchronous series of data. While this abstraction was appropriate for the input and github streams, which are asynchronous, the majority of documentation.js's internals are simple and synchronous functions for which basic functional composition makes more sense than stream semantics.
Documentation 3.0.0 uses simple functional composition for operations like parmameter inference, rather than streams.
Stronger support for ES6, ES7, and Flow
We've switched to Babel as our source code parser, which means that we have much broader support of new JavaScript features, including import/export syntax and new features in ES6.
Babel also parses Flow type annotations, and new inference code means that we can infer
Without any explicit JSDoc tags. This means that for many simple functions, we can generate great documentation with less writing.
Stronger module support
Documentation.js now has much better inference for membership and names of symbols
exported via exports or module.exports.
Support for nested symbols
The parent/child relationship between symbols is now fully hierarchical, and symbols can be nested to any depth. For instance:
/**
* A global Parent class.
*/
var Parent = function () {};
/**
* A Child class.
*/
Parent.Child = function () {};
/**
* A Grandchild class.
*/
Parent.Child.Grandchild = function () {};
In addition, filtering by access is now applied to the entire hierarchy: if you
mark a class as @private, neither it nor its children will be included in the
output by default, regardless of the access specifiers of the children.
mdast-based Markdown output
We've switched from templating Markdown output with Handlebars.js to generating an abstract syntax tree of desired output and stringifying it with mdast. This lets documentation.js output complex Markdown without having to worry about escaping and properly formatting certain elements.
Test coverage 100%
documentation.js returns to 100% test coverage, so every single line of code is covered by our large library of text fixtures and specific tests.
--lint mode
Specifying the --lint flag makes documentation.js check for non-standard
types, like String, or missing namespaces. If the encountered files have
any problems, it pretty-prints helpful debug messages and exits with status 1,
and otherwise exits with no output and status 0.
Breaking changes
--version flag is now --project-version. --version now outputs
documentation.js's versionFAQs
a documentation generator
We found that documentation demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.

Research
/Security News
Malicious npm packages use Adspect cloaking and fake CAPTCHAs to fingerprint visitors and redirect victims to crypto-themed scam sites.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.