Browse Source

add bin docast

formatter
Brett Langdon 11 years ago
parent
commit
606d765af7
3 changed files with 97 additions and 1 deletions
  1. +53
    -1
      README.md
  2. +40
    -0
      bin/docast
  3. +4
    -0
      package.json

+ 53
- 1
README.md View File

@ -19,7 +19,59 @@ cd ./docast
npm install npm install
``` ```
## Basic Usage
## CLI Usage
From the command line you can use `docast` to pull comments out from javascript
files and store into a json file or you can provide a javascript file to use to
format the comments into some other form.
### Help Text
```
$ docast --help
Usage:
docast (-h | --help)
docast (-v | --version)
docast extract [-o <output>] <input_files>...
docast generate <formatter> <input_files>...
Options:
-h --help Show this help text
-v --version Show docast version information
Extract:
Parse docs from javascript files and output as json to a file
-o --output <output> File to output to [default: out.json]
<input_files> List of javascript files to fetch docs from
Generate:
Provide a script used to generate documentation from the parsed docs
<formatter> Script which exports a `function(comments)` used to generate docs from comments
<input_files> List of javascript files to fetch docs from
```
### Extract
```
$ docast extract -o out.json ./lib/*.js
$ cat out.js
[{"name":"func1","params":[],"returns":[],"raises":[],"doc":"this is func1"}, ...]
```
### Generate
#### formatter.js
```javascript
// simply print the name of each function we have documentation for
module.exports = function(comments){
comments.forEach(function(comment){
console.log(comment.name);
});
};
```
#### Usage
```
$ docast generate ./formatter.js ./lib/*.js
func1
func2
```
## Basic API Usage
The below example shows how you can use DocAST to parse documentation data from The below example shows how you can use DocAST to parse documentation data from
your javascript source code. your javascript source code.


+ 40
- 0
bin/docast View File

@ -0,0 +1,40 @@
#!/usr/bin/env node
var docast = require('docast');
var docopt = require('docopt');
var fs = require('fs');
var path = require('path');
var doc = [
'Usage:',
' docast (-h | --help)',
' docast (-v | --version)',
' docast extract [-o <output>] <input_files>...',
' docast generate <formatter> <input_files>...',
'',
'Options:',
' -h --help Show this help text',
' -v --version Show docast version information',
'Extract:',
' Parse docs from javascript files and output as json to a file',
' -o --output <output> File to output to [default: out.json]',
' <input_files> List of javascript files to fetch docs from',
'Generate:',
' Provide a script used to generate documentation from the parsed docs',
' <formatter> Script which exports a `function(comments)` used to generate docs from comments',
' <input_files> List of javascript files to fetch docs from',
].join('\r\n');
var args = docopt.docopt(doc, {version: require('../package.json').version});
var comments = [];
args['<input_files>'].forEach(function(file){
comments = comments.concat(docast.parse(file));
});
if(args.extract){
fs.writeFileSync(args['--output'], JSON.stringify(comments));
} else if(args.generate){
var loc = path.join(process.cwd(), args['<formatter>']);
var formatter = require(loc);
formatter(comments);
}

+ 4
- 0
package.json View File

@ -17,9 +17,13 @@
}, },
"homepage": "https://github.com/brettlangdon/docast", "homepage": "https://github.com/brettlangdon/docast",
"dependencies": { "dependencies": {
"docopt": "^0.4.1",
"esprima": "^1.2.3" "esprima": "^1.2.3"
}, },
"devDependencies": { "devDependencies": {
"mocha": "^2.1.0" "mocha": "^2.1.0"
},
"bin": {
"docast": "bin/docast"
} }
} }

Loading…
Cancel
Save