-
Notifications
You must be signed in to change notification settings - Fork 0
/
gruntfile.js
83 lines (74 loc) · 2.32 KB
/
gruntfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
module.exports = function (grunt) {
'use strict';
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-gh-pages');
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: {
dist: ['dist/']
},
copy: {
rootfiles: {
src: ['README.md', 'LICENCE*'],
dest: 'dist/'
}
},
typedocc: {
default: {
options: {
module: 'commonjs',
out: 'dist/default',
name: 'Leap Motion',
target: 'es5',
theme: 'default'
},
src: 'src/default'
},
minimal: {
options: {
module: 'commonjs',
out: 'dist/minimal',
name: 'FS Extra',
target: 'es5',
theme: 'minimal'
},
src: 'src/minimal'
}
},
'gh-pages': {
'dist': {
options: {
base: 'dist/'
},
src: '**/*'
}
}
});
grunt.registerTask('typedoc', function() {
var Path = require('path');
var TypeDoc = require('typedoc');
['default', 'minimal'].forEach(function (theme) {
var settings = new TypeDoc.Settings();
settings.inputFiles.push(Path.resolve('./src/' + theme));
settings.expandInputFiles();
settings.out = Path.resolve('./dist/' + theme);
settings.theme = theme;
settings.mode = TypeDoc.SourceFileMode.File;
settings.name = (theme == 'default' ? 'Leap Motion' : 'FS Extra');
settings.compilerOptions.target = TypeDoc.ScriptTarget.ES5;
var app = new TypeDoc.Application(settings);
app.generate(settings.inputFiles, settings.out);
});
});
grunt.registerTask('build', 'Create api documentation', [
'clean',
'typedoc',
'copy'
]);
grunt.registerTask('publish', 'Publish to typedoc.io/api', [
'build',
'gh-pages'
]);
grunt.registerTask('default', ['build']);
};