UNPKG

ndoc

Version:

JavaScript API documentor with simple syntax.

141 lines (104 loc) 5.06 kB
# NDoc - JavaScript documentation generator [![CI](https://github.com/nodeca/ndoc/workflows/CI/badge.svg)](https://github.com/nodeca/ndoc/actions) NDoc is an inline comment parser and JavaScript documentation generator written in Node.JS. This project was inspired by [PDoc](http://pdoc.org/syntax.html). It tries to keep compatibility, but has some differences: - NDoc is primarily a CLI tool, so you don't need to code your documentor, although it can be easily used as [library](#using-ndoc-as-module). - Clarified EBNF syntax. Definitions now **MUST** be separated with an empty line from the following comments. - Added options for `deprecated` tag: you can set versions, when tag was deprecated and when method/property will be removed. - Added new tags: `read-only`, `internal`, `chainable` - Events support. ## How to Install We suppose that you already have `Node` and `npm` installed. If not - try [nvm](https://github.com/creationix/nvm). ```bash npm install -g ndoc ``` ## Usage ```none usage: ndoc [-h] [-v] [--exclude PATTERN] [-o PATH] [--use PLUGIN] [--alias MAPPING] [-r RENDERER] [--link-format FORMAT] [-t TEMPLATE] [--show-all] [--package PACKAGE] [--index FILE] [--gh-ribbon URL] [--broken-links ACTION] [--noenv] PATH[PATH ...] Positional arguments: PATH Source files location Optional arguments: -h, --help Show this help message and exit. -v, --version Show program's version number and exit. --exclude PATTERN Glob patterns of filenames to exclude (you can use wildcards: ?, *, **). -o PATH, --output PATH Resulting file(s) location. --use PLUGIN Load custom plugin. --alias MAPPING Registers extensions alias. For example `cc:js` will register `cc` extension as an alias of `js` -r RENDERER, --render RENDERER Documentation renderer (html, json). More can be added by custom plugins. --link-format FORMAT View sources link (no links by default) format. You can use `{file}` and `{line}` and any of `{package.*}` variables for interpolation. -t TEMPLATE, --title TEMPLATE Documentation title template. You can use any of `{package.*}` variables for interpolation. DEFAULT: `{package.name} {package.version} API documentation` --show-all By default `internal` methods/properties are not shown. This trigger makes ndoc show all methods/properties --package PACKAGE Read specified package.json FILE. When not specified, read ./package.json if such file exists. --index FILE Index file (with introduction text), e.g. README.md file. --gh-ribbon URL Add "Fork me on GitHub" ribbon with given URL. You can use any of `{package.*}` variables for interpolation. --broken-links ACTION What to do if broken link occurred (show, hide, throw). DEFAULT: `show`. --noenv Ignore .ndocrc ``` ## Syntax [NDoc Syntax](https://github.com/nodeca/ndoc/blob/master/syntax.md). It is similar to [PDoc](https://github.com/tobie/pdoc) one, with some extensions (see start of this doc for details). ## For developers You can generate prototype documentation for test: ```bash make test ``` Then open `./tests/prototype-doc/index.html`. #### Custom parsers and renderers You can create and use your own parser/renderer via `--use` option. Get one of the [parsers][parsers] or [renderers][renderers] as a base template, copy it into separate folder. Create package.json and modify it to fit your needs. Then attach it with `--use my-module` argument. [parsers]: https://github.com/nodeca/ndoc/blob/master/lib/ndoc/plugins/parsers [renderers]: https://github.com/nodeca/ndoc/blob/master/lib/ndoc/plugins/renderers #### Using NDoc as module You can use NDoc as module, for example, to override default options processing. ```js var NDoc = require('ndoc'); var options = { linkFormat : 'http://example.com/{file}#{line}', output: : 'doc' }; var ast; try { ast = NDoc.parse(['lib/my-module.js'], options); } catch (err) { console.error(err); process.exit(1); } try { NDoc.render('html', ast, options); } catch (err) { console.error(err); process.exit(1); } ``` ## License This project is distributed under [MIT](https://github.com/nodeca/ndoc/blob/master/LICENSE) license.