Skip to content

Commit aca2070

Browse files
committed
Minor refactor of documentation, unbreaking generation of new docs when API changes are made
1 parent 941bfdf commit aca2070

15 files changed

+54
-39
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ build
1010
immutable.d.json
1111
readme.json
1212
/pages/out
13+
/pages/resources/immutable.d.json
14+
/pages/resources/readme.json

gulpfile.js

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ var through = require('through2');
2727
var uglify = require('gulp-uglify');
2828
var vm = require('vm');
2929

30-
var genTypeDefData = require('./pages/lib/genTypeDefData');
31-
var genMarkdownDoc = require('./pages/lib/genMarkdownDoc');
3230

3331
var SRC_DIR = './pages/src/';
3432
var BUILD_DIR = './pages/out/';
@@ -40,36 +38,34 @@ gulp.task('clean', function (done) {
4038
});
4139

4240
gulp.task('readme', function() {
43-
var readmePath = 'README.md';
44-
return gulp.src(readmePath)
45-
.pipe(through.obj(function(file, enc, cb) {
46-
var fileSource = file.contents.toString(enc);
47-
file.path = path.join(path.dirname(file.path), 'readme.json');
48-
file.contents = new Buffer(JSON.stringify(
49-
genMarkdownDoc(fileSource)
50-
));
51-
this.push(file);
52-
cb();
53-
}))
54-
.pipe(gulp.dest('./resources/'));
41+
var genMarkdownDoc = require('./pages/lib/genMarkdownDoc');
42+
43+
var readmePath = path.join(__dirname, './README.md');
44+
45+
var fileContents = fs.readFileSync(readmePath, 'utf8');
46+
47+
var writePath = path.join(__dirname, './pages/resources/readme.json');
48+
var contents = JSON.stringify(genMarkdownDoc(fileContents));
49+
50+
fs.writeFileSync(writePath, contents);
5551
});
5652

5753
gulp.task('typedefs', function() {
58-
var typeDefPath = 'type-definitions/immutable.d.ts';
59-
return gulp.src(typeDefPath)
60-
.pipe(through.obj(function(file, enc, cb) {
61-
var fileSource = file.contents.toString(enc).replace(
62-
'module \'immutable\'',
63-
'module Immutable'
64-
);
65-
file.path = path.join(path.dirname(file.path), 'immutable.d.json');
66-
file.contents = new Buffer(JSON.stringify(
67-
genTypeDefData(file.relative, fileSource)
68-
));
69-
this.push(file);
70-
cb();
71-
}))
72-
.pipe(gulp.dest('./resources/'));
54+
var genTypeDefData = require('./pages/lib/genTypeDefData');
55+
56+
var typeDefPath = path.join(__dirname, './type-definitions/immutable.d.ts');
57+
58+
var fileContents = fs.readFileSync(typeDefPath, 'utf8');
59+
60+
var fileSource = fileContents.replace(
61+
'module \'immutable\'',
62+
'module Immutable'
63+
);
64+
65+
var writePath = path.join(__dirname, './pages/resources/immutable.d.json');
66+
var contents = JSON.stringify(genTypeDefData(typeDefPath, fileSource));
67+
68+
fs.writeFileSync(writePath, contents);
7369
});
7470

7571
gulp.task('lint', function() {
@@ -202,7 +198,9 @@ function gulpStatics(subDir) {
202198

203199
gulp.task('build', function (done) {
204200
sequence(
205-
['readme', 'typedefs', 'js', 'js-docs', 'less', 'less-docs', 'statics', 'statics-docs'],
201+
['typedefs'],
202+
['readme'],
203+
['js', 'js-docs', 'less', 'less-docs', 'statics', 'statics-docs'],
206204
['pre-render', 'pre-render-docs'],
207205
done
208206
);

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"lint": "grunt lint && gulp lint",
2424
"test": "./resources/node_test.sh",
2525
"perf": "node ./resources/bench.js",
26+
"start": "npm run build && node ./pages/resources/start.js",
2627
"deploy": "(cd ./pages/out && git init && git config user.name \"Travis CI\" && git config user.email \"github@fb.com\" && git add . && git commit -m \"Deploy to GitHub Pages\" && git push --force --quiet \"https://${GH_TOKEN}@github.com/facebook/immutable-js.git\" master:gh-pages > /dev/null 2>1)"
2728
},
2829
"jest": {
@@ -43,6 +44,7 @@
4344
"del": "2.2.0",
4445
"es6-transpiler": "0.7.18",
4546
"estraverse": "1.9.3",
47+
"express": "^4.13.4",
4648
"grunt": "0.4.5",
4749
"grunt-cli": "0.1.13",
4850
"grunt-contrib-clean": "0.7.0",

pages/lib/collectMemberGroups.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
var { Seq } = require('../../');
2+
// Note: intentionally using raw defs, not getTypeDefs to avoid circular ref.
23
var defs = require('../resources/immutable.d.json');
34

45
function collectMemberGroups(interfaceDef, options) {

pages/lib/genMarkdownDoc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require('node-jsx').install({harmony: true});
22
var markdown = require('./markdown');
3-
var defs = require('../resources/immutable.d.json');
3+
var defs = require('./getTypeDefs');
44

55

66
function genMarkdownDoc(typeDefSource) {

pages/lib/genTypeDefData.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
var TypeScript = require('./typescript-services');
22
require('node-jsx').install({harmony: true});
33
var DocVisitor = require('./DocVisitor');
4-
var markdownDocs = require('./markdownDocs');
54

65

76
function genTypeDefData(typeDefPath, typeDefSource) {
@@ -11,7 +10,6 @@ function genTypeDefData(typeDefPath, typeDefSource) {
1110
var visitor = new DocVisitor(typeDefText);
1211
TypeScript.visitNodeOrToken(visitor, typeDefAST.sourceUnit());
1312
var typeDefData = visitor.pop();
14-
markdownDocs(typeDefData);
1513
return typeDefData;
1614
}
1715

pages/lib/getTypeDefs.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
var markdownDocs = require('./markdownDocs');
2+
var defs = require('../resources/immutable.d.json');
3+
markdownDocs(defs);
4+
5+
module.exports = defs;

pages/lib/markdown.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ var { Seq } = require('../../');
22
var marked = require('marked');
33
var prism = require('./prism');
44
var collectMemberGroups = require('./collectMemberGroups');
5+
// Note: intentionally using raw defs, not getTypeDefs to avoid circular ref.
56
var defs = require('../resources/immutable.d.json');
67

78

pages/resources/immutable.d.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

pages/resources/readme.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

pages/resources/start.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
var path = require('path');
2+
var express = require('express');
3+
4+
var app = express();
5+
6+
app.use(express.static(path.join(__dirname, '../out')));
7+
8+
app.listen(8121, function () {
9+
console.log('http://localhost:8121/');
10+
});

pages/src/docs/src/Defs.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ var CSSCore = require('react/lib/CSSCore');
33
var Router = require('react-router');
44
var { Seq } = require('../../../../');
55
var TypeKind = require('../../../lib/TypeKind');
6-
var defs = require('../../../resources/immutable.d.json');
6+
var defs = require('../../../lib/getTypeDefs');
77

88

99
var InterfaceDef = React.createClass({

pages/src/docs/src/SideBar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
var React = require('react');
22
var Router = require('react-router');
33
var { Seq } = require('../../../../');
4-
var defs = require('../../../resources/immutable.d.json');
4+
var defs = require('../../../lib/getTypeDefs');
55

66

77
var SideBar = React.createClass({

pages/src/docs/src/TypeDocumentation.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ var MarkDown = require('./MarkDown');
99
var DocOverview = require('./DocOverview');
1010
var collectMemberGroups = require('../../../lib/collectMemberGroups');
1111
var TypeKind = require('../../../lib/TypeKind');
12-
var defs = require('../../../resources/immutable.d.json');
12+
var defs = require('../../../lib/getTypeDefs');
1313

1414

1515
var TypeDocumentation = React.createClass({

pages/src/docs/src/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var Router = require('react-router');
44
var { Route, DefaultRoute, RouteHandler } = Router;
55
var DocHeader = require('./DocHeader');
66
var TypeDocumentation = require('./TypeDocumentation');
7-
var defs = require('../../../resources/immutable.d.json');
7+
var defs = require('../../../lib/getTypeDefs');
88

99

1010
var Documentation = React.createClass({

0 commit comments

Comments
 (0)