1
- var fs = require ( 'fs' ) ;
2
- var path = require ( 'path' ) ;
3
- var marked = require ( 'marked' ) ;
1
+ 'use strict' ;
4
2
5
- var doc = path . resolve ( __dirname , '..' , '..' , 'doc' , 'api' , 'addons.markdown' ) ;
6
- var verifyDir = path . resolve ( __dirname , '..' , '..' , 'test' , 'addons' ) ;
3
+ const fs = require ( 'fs' ) ;
4
+ const path = require ( 'path' ) ;
5
+ const marked = require ( 'marked' ) ;
7
6
8
- var contents = fs . readFileSync ( doc ) . toString ( ) ;
7
+ const doc = path . resolve ( __dirname , '..' , '..' , 'doc' , 'api' , 'addons.markdown' ) ;
8
+ const verifyDir = path . resolve ( __dirname , '..' , '..' , 'test' , 'addons' ) ;
9
9
10
- var tokens = marked . lexer ( contents , { } ) ;
11
- var files = null ;
12
- var id = 0 ;
10
+ const contents = fs . readFileSync ( doc ) . toString ( ) ;
11
+
12
+ let tokens = marked . lexer ( contents , { } ) ;
13
+ let files = null ;
14
+ let blockName ;
15
+ let id = 0 ;
13
16
14
17
// Just to make sure that all examples will be processed
15
18
tokens . push ( { type : 'heading' } ) ;
16
19
17
20
var oldDirs = fs . readdirSync ( verifyDir ) ;
18
21
oldDirs = oldDirs . filter ( function ( dir ) {
19
- return / ^ d o c - / . test ( dir ) ;
22
+ return / ^ \d { 2 } _ / . test ( dir ) ;
20
23
} ) . map ( function ( dir ) {
21
24
return path . resolve ( verifyDir , dir ) ;
22
25
} ) ;
23
26
24
27
for ( var i = 0 ; i < tokens . length ; i ++ ) {
25
28
var token = tokens [ i ] ;
26
- if ( token . type === 'heading' ) {
29
+ if ( token . type === 'heading' && token . text ) {
30
+ blockName = token . text
27
31
if ( files && Object . keys ( files ) . length !== 0 ) {
28
32
verifyFiles ( files ,
33
+ blockName ,
29
34
console . log . bind ( null , 'wrote' ) ,
30
35
function ( err ) { if ( err ) throw err ; } ) ;
31
36
}
@@ -48,15 +53,16 @@ function once(fn) {
48
53
} ;
49
54
}
50
55
51
- function verifyFiles ( files , onprogress , ondone ) {
52
- var dir = path . resolve ( verifyDir , 'doc-' + id ++ ) ;
53
-
56
+ function verifyFiles ( files , blockName , onprogress , ondone ) {
54
57
// must have a .cc and a .js to be a valid test
55
58
if ( ! Object . keys ( files ) . some ( ( name ) => / \. c c $ / . test ( name ) ) ||
56
59
! Object . keys ( files ) . some ( ( name ) => / \. j s $ / . test ( name ) ) ) {
57
60
return ;
58
61
}
59
62
63
+ blockName = blockName . toLowerCase ( ) . replace ( / \s / g, '_' ) . replace ( / [ ^ a - z \d _ ] / g, '' )
64
+ let dir = path . resolve ( verifyDir , `${ ( ++ id < 10 ? '0' : '' ) + id } _${ blockName } ` ) ;
65
+
60
66
files = Object . keys ( files ) . map ( function ( name ) {
61
67
return {
62
68
path : path . resolve ( dir , name ) ,
0 commit comments