UNPKG

reference

Version:

Generate documentation from JSON.

90 lines (76 loc) 2.27 kB
# reference.js Generate a simple API reference from JSON. Made specifically for <a href="http://peerjs.com/docs">PeerJS</a>, so it probably won't suit your needs. npm install reference ## Usage ```javascript var reference = require('reference'); var fs = require('fs'); var file = fs.readFileSync('./documentation.json', {anchor: true}); // adds permalinks/anchors for all headings. // also accepts yaml. // Generated HTML! var html = reference(file); ``` ## Expected style The `name` property is **required**. Everything else is optional. Anchor IDs will correspond to the nesting of the current property (e.g. `Some Class -> klass#method -> argument` has an ID of `some_class-klassmethod-argument`). ```javascript [ { "name": "TopLevelClass", "type": "constructor", "tags": ["my", "tags"], // newly-added; doesn't show up in the pic below. "description": "This class does some stuff.", "snippet": "var klass = new TopLevelClass(arg1, [callback]);", "children": [ { "name": "arg1", "type": "string", "description": "This is an argument for the constructor." }, { "name": "callback", "type": "function", "description": "This is an optional callback.", "optional": true, "children": { "name": "err", "type": "error", "description": "Will callback with an error if you messed up." } } ] }, { "name": "AnotherTopLevelClass", "type": "constructor", "description": "This class does some other stuff.", "snippet": "var klass2 = new AnotherTopLevelClass(options);", "children": { "name": "options", "type": "object", "description": "This is a hash of options for AnotherTopLevelClass.", "children": [ { "name": "option1", "description": "This is anything, really." }, { "name": "option2", "description": "This is just really another option." } ] } } ] ``` The above should give you something like this: <img src="http://cl.ly/image/021u0r0j2c2x/Screen%20Shot%202013-09-15%20at%202.30.30%20AM.png" width="300px"> ## Generate PeerJS demo ``` cd demo npm install node demo.js ```