documentation/README.md
Tom MacWright 631c6925d4 feat(core): Switch to Promises everywhere. Adopt Node v4 ES6 (#648)
* feat(core): Switch to Promises everywhere. Adopt Node v4 ES6

Big changes:

* Uses template strings where appropriate
* Config and argument parsing is unified and there is no such thing
  as formatterOptions anymore. All user-passed options go through
  mergeConfig.
* The node API surface changed (again): `buildSync` is removed,
  building operations return Promises.
* Now using Flow for internal type annotations.

More changes:

* Remove buildSync command
* feat(inference): Partially implement object shorthand support
* Refs #649
* Use Flow annotations to  enforce types
* Keep flow but switch to comment syntax
* Clarify types
* More flow improvements
* Turn server into class
* LinkerStack becomes class too
* Fix comment description type
* Run flow on lint
* Many more flow fixes
* More intense flow refactoring
* Simplify inference steps
* Update inference tests, flow errors down to 1
* Continue refining types
* Fix more flow issues
* Use 'use strict' everywhere
* Make 'ast' property configurable
* Fix many tests
* Fix more tests
* Fix more tests
* Fix augments
* Test Markdown meta support
* Improve test coverage
* Switch back from for of to for for speed
2017-01-27 16:14:19 -05:00

5.2 KiB

documentation

Circle CI npm version Gitter David Coverage Status Inline docs

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 babel, we have support for a wide range of ES6 & ES7 features, as well as Flow type annotations.

Powerful inference

By statically analyzing your JavaScript code, documentation.js can write many parts of your documentation for you. It can infer parameter names and types, class membership, return values from Flow types, and lots more.

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.

Examples

Documentation

User Guide

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:

Usage:

# generate markdown docs for index.js and files it references
bin/documentation.js build index.js -f md

# generate html docs for all files in src
bin/documentation.js build src/** -f html -o docs

# document index.js, ignoring any files it requires or imports
bin/documentation.js build index.js -f md --shallow

# build, serve, and live-update html docs for app.js
bin/documentation.js serve app.js

# validate JSDoc syntax in util.js
bin/documentation.js lint util.js

# update the API section of README.md with docs from index.js
bin/documentation.js readme index.js --section=API

# build docs for all values exported by index.js
bin/documentation.js build --document-exported index.js

Commands:
  serve [input..]   generate, update, and display HTML documentation
  build [input..]   build documentation
  lint [input..]    check for common style and uniformity mistakes
  readme [input..]  inject documentation into your README.md

Options:
  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]

Contributing

We have plenty of issues that we'd love help with.

  • Robust and complete JSDoc support, including typedefs.
  • Strong support for HTML and Markdown output
  • Documentation coverage, statistics, and validation

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.