Skip to content

Commit 8e0ca7b

Browse files
author
fabianmoronzirfas
committed
styling and added @examples logic
1 parent f2bbdcb commit 8e0ca7b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+5114
-2169
lines changed

.bin/explore.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
1-
const data = require('../_data/cats-and-subcats.json');
2-
console.log(data);
1+
// const data = require('../_data/cats-and-subcats.json');
2+
const data = require('../_data/api.json');
3+
// console.log(data);
4+
data.forEach((e)=>{
5+
console.log(e.members);
6+
});

.bin/files-and-folders.js

Lines changed: 0 additions & 64 deletions
This file was deleted.

.bin/json-transform.js renamed to .bin/index.js

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ const Return = require('./lib/returns');
66
const Tag = require('./lib/tag');
77
const Category = require('./lib/category');
88
const _ = require('lodash');
9-
const generator = require('./lib/generator');
9+
const generateData = require('./lib/data-generator');
1010
const Filters = require('./lib/filters');
11+
const generateFiles = require('./lib/files-and-folders');
1112

1213

1314
let data = [];
14-
api.forEach((e, i, arr)=> {
15+
16+
function buildEntry(e) {
1517
let entry = new Entry();
1618
entry.name = e.name;
1719
if(e.description instanceof Object) {
@@ -76,9 +78,12 @@ api.forEach((e, i, arr)=> {
7678
entry.parameters.push(param);
7779
} else if (ele.title === 'method') {
7880
entry.kind = 'function';
79-
}else if (ele.title === 'constant' || ele.title === 'property') {
81+
}else if (ele.title === 'constant') {
8082
entry.kind = 'constant';
81-
83+
} else if (ele.title === 'property') {
84+
entry.kind = 'property';
85+
} else if (ele.title === 'constructor') {
86+
entry.kind = 'constructor';
8287
} else if (ele.title === 'return' || ele.title === 'returns') {
8388
let returnValue = new Return();
8489
returnValue.description = ele.description;
@@ -107,6 +112,24 @@ api.forEach((e, i, arr)=> {
107112
});
108113
}
109114
data.push(entry);
115+
if(e.members.instance.length > 0) {
116+
e.members.instance.forEach((el)=>{
117+
buildEntry(el);
118+
});
119+
}
120+
if(e.members.static.length > 0) {
121+
e.members.static.forEach((el)=>{
122+
buildEntry(el);
123+
});
124+
}
125+
// if(e.members.events.length > 0) {
126+
// e.members.events.forEach((el)=>{
127+
// buildEntry(el);
128+
// });
129+
// }
130+
}
131+
api.forEach((el)=> {
132+
buildEntry(el);
110133
});
111134

112135
// Some filtering
@@ -118,7 +141,7 @@ data.forEach((element)=>{
118141
element.category = filter.nullToGlobal(element.category);
119142
});
120143

121-
data = generator(data);
144+
data = generateData(data);
122145
// taken from here
123146
// http://stackoverflow.com/questions/23600897/using-lodash-groupby-how-to-add-your-own-keys-for-grouped-output
124147
let sortedByCategory = _.chain(data)
@@ -196,3 +219,4 @@ fs.writeFile('./_data/cats-and-subcats.json', JSON.stringify(catsAndSubcats, nul
196219
}
197220
});
198221

222+
generateFiles(true);

.bin/lib/generator.js renamed to .bin/lib/data-generator.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,18 @@
33
*
44
*/
55
var exports = module.exports = {};
6-
7-
86
function generator(data) {
97
data.forEach((element)=>{
108
element.codetitle = null;
11-
if(element.kind.toString() === 'function') {
9+
if(element.kind.toString() === 'function' || element.kind.toString() === 'constructor') {
1210
let params = '';
1311
element.parameters.forEach((ele, ndx, arr)=>{
1412
let name = (ele.optional === true) ? `[${ele.name}]` : ele.name;
1513
let sep = (ndx + 1 !== arr.length) ? ', ' : '';
1614
params += name + sep;
1715
});
18-
1916
element.codetitle = `b.${element.name}(${params})`;
20-
// console.log(element);
21-
22-
}else if (element.kind.toString() === 'constant') {
17+
}else if (element.kind.toString() === 'constant' || element.kind.toString() === 'property') {
2318
element.codetitle = `b.${element.name}`;
2419
} else if(element.kind.toString() === 'class') {
2520
element.codetitle = `${element.name}`;

.bin/lib/files-and-folders.js

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
var exports = module.exports = {};
2+
3+
// should take the data.json
4+
// and go through all the categories
5+
// creates
6+
// - a folder per category
7+
// - a file for each function/variable
8+
// only if they don't exist already
9+
// or a overwrite flag is set
10+
const fs = require('fs-extra');
11+
const YAML = require('yamljs');
12+
const data = require('../../_data/categories.json'); // load the cats
13+
const pathExists = require('path-exists');
14+
15+
// console.log(process.cwd());
16+
17+
function write(file, str) {
18+
fs.outputFile(file, str, (error)=>{
19+
if(error) {
20+
console.log(error);
21+
}
22+
});
23+
}
24+
function process(ele, folder, ow) {
25+
ele.entries.forEach((e, i, arr)=>{
26+
// console.log(e);
27+
let file = `${folder}${e.name}.md`;
28+
let yamlstr = YAML.stringify({
29+
layout: 'entry',
30+
title: e.name,
31+
codetitle: e.codetitle,
32+
description: e.description,
33+
category: e.category,
34+
subcategory: e.subcategory,
35+
returns: e.returns,
36+
parameters: e.parameters,
37+
kind: e.kind
38+
}, 2);
39+
let frontmatter = `---\n${yamlstr}\n---\n`;
40+
if(ow === true) {
41+
if(pathExists.sync(file) === true) {
42+
console.log(`Overwriting file "${file}"`);
43+
}else{
44+
console.log(`Creating file "${file}"`);
45+
}
46+
write(file, frontmatter);
47+
} else if(ow === false || pathExists.sync(file) === false) {
48+
console.log(`Creating file "${file}"`);
49+
write(file, frontmatter);
50+
}else if(ow === false || pathExists.sync(file) === true) {
51+
console.log(`The file "${file}" already exists`);
52+
}
53+
});
54+
}
55+
56+
function generate(overwrite) {
57+
data.forEach((element, index, array)=>{
58+
if(element.cat !== 'null') {
59+
process(element, `./${element.cat.toLowerCase()}/`, overwrite);
60+
}else{
61+
process(element, './global/', overwrite);
62+
}
63+
});
64+
}
65+
66+
module.exports = generate;

0 commit comments

Comments
 (0)