1
- var _ = require ( 'lodash' ) ;
2
- var apidoc = require ( 'apidoc-core' ) ;
3
- var winston = require ( 'winston' ) ;
4
- var path = require ( 'path' ) ;
5
- var markdown = require ( 'marked ' ) ;
6
- var nomnom = require ( 'nomnom' ) ;
7
- var fs = require ( 'fs-extra' ) ;
1
+ var _ = require ( 'lodash' ) ;
2
+ var apidoc = require ( 'apidoc-core' ) ;
3
+ var winston = require ( 'winston' ) ;
4
+ var path = require ( 'path' ) ;
5
+ var markdown = require ( 'markdown-it ' ) ;
6
+ var nomnom = require ( 'nomnom' ) ;
7
+ var fs = require ( 'fs-extra' ) ;
8
8
var PackageInfo = require ( './package_info' ) ;
9
9
10
10
var apidocSwagger = require ( './apidocToSwagger' ) ;
11
11
12
12
var defaults = {
13
- dest : path . join ( __dirname , '../doc/' ) ,
13
+ dest : path . join ( __dirname , '../doc/' ) ,
14
14
template : path . join ( __dirname , '../template/' ) ,
15
15
16
- debug : false ,
17
- silent : false ,
18
- verbose : false ,
16
+ debug : false ,
17
+ silent : false ,
18
+ verbose : false ,
19
19
simulate : false ,
20
- parse : false , // only parse and return the data, no file creation
20
+ parse : false , // only parse and return the data, no file creation
21
21
colorize : true ,
22
- markdown : true ,
23
-
24
- marked : {
25
- gfm : true ,
26
- tables : true ,
27
- breaks : false ,
28
- pedantic : false ,
29
- sanitize : false ,
30
- smartLists : false ,
31
- smartypants : false
32
- }
22
+ markdown : true
33
23
} ;
34
24
35
25
var app = {
36
- log : { } ,
26
+ log : { } ,
37
27
markdown : false ,
38
- options : { }
28
+ options : { }
39
29
} ;
40
30
41
31
// uncaughtException
42
- process . on ( 'uncaughtException' , function ( err ) {
32
+ process . on ( 'uncaughtException' , function ( err ) {
43
33
console . error ( ( new Date ( ) ) . toUTCString ( ) + ' uncaughtException:' , err . message ) ;
44
34
console . error ( err . stack ) ;
45
35
process . exit ( 1 ) ;
@@ -53,7 +43,7 @@ function createApidocSwagger(options) {
53
43
options = _ . defaults ( { } , options , defaults ) ;
54
44
55
45
// paths
56
- options . dest = path . join ( options . dest , './' ) ;
46
+ options . dest = path . join ( options . dest , './' ) ;
57
47
58
48
// options
59
49
app . options = options ;
@@ -62,30 +52,34 @@ function createApidocSwagger(options) {
62
52
app . log = new ( winston . Logger ) ( {
63
53
transports : [
64
54
new ( winston . transports . Console ) ( {
65
- level : app . options . debug ? 'debug' : app . options . verbose ? 'verbose' : 'info' ,
66
- silent : app . options . silent ,
55
+ level : app . options . debug ? 'debug' : app . options . verbose ? 'verbose' : 'info' ,
56
+ silent : app . options . silent ,
67
57
prettyPrint : true ,
68
- colorize : app . options . colorize ,
69
- timestamp : false
58
+ colorize : app . options . colorize ,
59
+ timestamp : false
70
60
} ) ,
71
61
]
72
62
} ) ;
73
63
74
64
// markdown
75
- if ( app . options . markdown === true ) {
76
- app . markdown = markdown ;
77
- app . markdown . setOptions ( app . options . marked ) ;
65
+ if ( app . options . markdown === true ) {
66
+ app . markdown = new markdown ( {
67
+ breaks : false ,
68
+ html : true ,
69
+ linkify : false ,
70
+ typographer : false
71
+ } ) ;
78
72
}
79
73
80
74
try {
81
75
packageInfo = new PackageInfo ( app ) ;
82
76
83
77
// generator information
84
- var json = JSON . parse ( fs . readFileSync ( apidocPath + 'package.json' , 'utf8' ) ) ;
78
+ var json = JSON . parse ( fs . readFileSync ( apidocPath + 'package.json' , 'utf8' ) ) ;
85
79
apidoc . setGeneratorInfos ( {
86
- name : json . name ,
87
- time : new Date ( ) ,
88
- url : json . homepage ,
80
+ name : json . name ,
81
+ time : new Date ( ) ,
82
+ url : json . homepage ,
89
83
version : json . version
90
84
} ) ;
91
85
apidoc . setLogger ( app . log ) ;
@@ -101,35 +95,35 @@ function createApidocSwagger(options) {
101
95
if ( api === false )
102
96
return false ;
103
97
104
- if ( app . options . parse !== true ) {
98
+ if ( app . options . parse !== true ) {
105
99
var apidocData = JSON . parse ( api . data ) ;
106
100
var projectData = JSON . parse ( api . project ) ;
107
- api [ "swaggerData" ] = JSON . stringify ( apidocSwagger . toSwagger ( apidocData , projectData ) ) ;
101
+ api [ "swaggerData" ] = JSON . stringify ( apidocSwagger . toSwagger ( apidocData , projectData ) ) ;
108
102
createOutputFile ( api ) ;
109
103
}
110
104
111
105
app . log . info ( 'Done.' ) ;
112
106
return api ;
113
- } catch ( e ) {
107
+ } catch ( e ) {
114
108
app . log . error ( e . message ) ;
115
109
if ( e . stack )
116
110
app . log . debug ( e . stack ) ;
117
111
return false ;
118
112
}
119
113
}
120
114
121
- function createOutputFile ( api ) {
115
+ function createOutputFile ( api ) {
122
116
if ( app . options . simulate )
123
117
app . log . warn ( '!!! Simulation !!! No file or dir will be copied or created.' ) ;
124
118
125
119
app . log . verbose ( 'create dir: ' + app . options . dest ) ;
126
- if ( ! app . options . simulate )
120
+ if ( ! app . options . simulate )
127
121
fs . mkdirsSync ( app . options . dest ) ;
128
122
129
123
//Write swagger
130
124
app . log . verbose ( 'write swagger json file: ' + app . options . dest + 'swagger.json' ) ;
131
- if ( ! app . options . simulate )
132
- fs . writeFileSync ( app . options . dest + './swagger.json' , api . swaggerData ) ;
125
+ if ( ! app . options . simulate )
126
+ fs . writeFileSync ( app . options . dest + './swagger.json' , api . swaggerData ) ;
133
127
}
134
128
135
129
module . exports = {
0 commit comments