1 | var bddDox = require('bdd-dox/lib');
|
2 | var beautify = require('js-beautify');
|
3 |
|
4 | var content = require('fs').readFileSync('./test/examples.test.js').toString();
|
5 | var blocks = bddDox(content);
|
6 |
|
7 | var trimEachLine = function(str) {
|
8 | var lines = str.split('\n');
|
9 | var result = '';
|
10 | for (var i = 0; i < lines.length; ++i) {
|
11 | var toAdd = lines[i].trim();
|
12 | if (toAdd.indexOf('* ') === 0) {
|
13 | toAdd = toAdd.substr('* '.length);
|
14 | }
|
15 | result += (i > 0 ? '\n' : '') + toAdd;
|
16 | }
|
17 |
|
18 | return result;
|
19 | };
|
20 |
|
21 | var mdOutput =
|
22 | '# wagner-core\n\n' +
|
23 | 'Dependency-injection-inspired async framework that doubles as an ' +
|
24 | 'isomorphic AngularJS-compatible dependency injector.\n\n' +
|
25 | '## API\n\n';
|
26 |
|
27 | for (var i = 0; i < blocks.length; ++i) {
|
28 | var describe = blocks[i];
|
29 | mdOutput += '### ' + describe.contents + '\n\n';
|
30 | mdOutput += describe.comments[0] ?
|
31 | trimEachLine(describe.comments[0]) + '\n\n' :
|
32 | '';
|
33 |
|
34 | for (var j = 0; j < describe.blocks.length; ++j) {
|
35 | var it = describe.blocks[j];
|
36 | mdOutput += '##### It ' + it.contents + '\n\n';
|
37 | mdOutput += it.comments[0] ? trimEachLine(it.comments[0]) + '\n\n' : '';
|
38 | mdOutput += '```\n';
|
39 | mdOutput += beautify(it.code, { indent_size: 2 }) + '\n';
|
40 | mdOutput += '```\n\n';
|
41 | }
|
42 | }
|
43 |
|
44 | require('fs').writeFileSync('README.md', mdOutput); |
\ | No newline at end of file |