node/tools/doc
Rich Trott 797d9a8e79 tools: refactor json.js
* Simplify regular expressions (see below)
* Remove unneeded `parseYAML()` wrapper
* Remove unused callback argument

Regular expression simplifications include:

* Changing trailing `*?$/` to `*$/` because non-greedy matching to the
  end of a line will not change behavior
* Change regexp beginnings like `/^(?:property:?\s*)?[^.\[]+` to the
  equivalent `/[^.\]]+`
* For regular expressions changed per the above, remove
  case-insensitivity if it no longer affects the regexp

PR-URL: https://github.com/nodejs/node/pull/10442
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Italo A. Casas <me@italoacasas.com>
2017-01-04 10:44:08 -06:00
..
node_modules tools: update marked dependency 2016-05-07 09:27:05 +02:00
addon-verify.js test: enable addons test to pass with debug build 2016-10-06 11:53:15 -07:00
common.js tools: allow multiple added: version entries 2016-05-05 01:15:10 +02:00
generate.js tools: remove unneeded escaping in generate.js 2016-12-05 03:22:15 +01:00
html.js lib,tools: remove unneeded escaping of / 2016-12-05 03:20:38 +01:00
json.js tools: refactor json.js 2017-01-04 10:44:08 -06:00
LICENSE
package.json tools: update marked dependency 2016-05-07 09:27:05 +02:00
preprocess.js tools: make sure doctool anchors respect includes 2016-05-26 00:49:34 +02:00
README.md tools: enable more remark-lint rules 2016-09-29 11:14:53 -07:00
type-parser.js doc: revise http documentation 2016-10-12 10:33:57 -07:00

Here's how the node docs work.

1:1 relationship from lib/<module>.js to doc/api/<module>.md

Each type of heading has a description block.

## module
<!-- YAML
added: v0.10.0
-->

> Stability: 3 - Stable

description and examples.

### module.property
<!-- YAML
added: v0.10.0
-->

* Type

description of the property.

### module.someFunction(x, y, [z=100])
<!-- YAML
added: v0.10.0
-->

* `x` {String} the description of the string
* `y` {Boolean} Should I stay or should I go?
* `z` {Number} How many zebras to bring.

A description of the function.

### module.someNewFunction(x)
<!-- YAML
added: REPLACEME
-->

* `x` {String} the description of the string

This feature is not in a release yet.

### Event: 'blerg'
<!-- YAML
added: v0.10.0
-->

* Argument: SomeClass object.

Modules don't usually raise events on themselves.  `cluster` is the
only exception.

## Class: SomeClass
<!-- YAML
added: v0.10.0
-->

description of the class.

### Class Method: SomeClass.classMethod(anArg)
<!-- YAML
added: v0.10.0
-->

* `anArg` {Object}  Just an argument
  * `field` {String} anArg can have this field.
  * `field2` {Boolean}  Another field.  Default: `false`.
* Return: {Boolean} `true` if it worked.

Description of the method for humans.

### someClass.nextSibling()
<!-- YAML
added: v0.10.0
-->

* Return: {SomeClass object | null}  The next someClass in line.

### someClass.someProperty
<!-- YAML
added: v0.10.0
-->

* String

The indication of what someProperty is.

### Event: 'grelb'
<!-- YAML
added: v0.10.0
-->

* `isBlerg` {Boolean}

This event is emitted on instances of SomeClass, not on the module itself.
  • Modules have (description, Properties, Functions, Classes, Examples)
  • Properties have (type, description)
  • Functions have (list of arguments, description)
  • Classes have (description, Properties, Methods, Events)
  • Events have (list of arguments, description)
  • Methods have (list of arguments, description)
  • Properties have (type, description)