@@ -63,7 +63,7 @@ function make(grunt) {
63
63
64
64
//------ Add Doc Tasks
65
65
grunt . registerTask ( 'noTask' , [ ] ) ;
66
- grunt . registerTask ( 'doc' , [ 'clean:docs' , 'copy:example' , 'typedoc' , 'sourceCode' , 'copy:docs' , `${ ( type === 'app' ) ? 'copy:docs2NPM' : 'noTask' } ` ] ) ;
66
+ grunt . registerTask ( 'doc' , [ 'clean:docs' , 'copy:example' , 'typedoc' , 'insertExamples' , ' sourceCode', 'copy:docs' , `${ ( type === 'app' ) ? 'copy:docs2NPM' : 'noTask' } ` ] ) ;
67
67
68
68
//------ Add Staging Tasks
69
69
grunt . registerTask ( 'stage' , [ `${ ( type === 'app' ) ? 'copy:app2NPM' : 'copy:lib2NPM' } ` ] ) ;
@@ -103,6 +103,7 @@ function make(grunt) {
103
103
104
104
grunt . registerMultiTask ( 'sourceCode' , translateSourcesToHTML ) ;
105
105
grunt . registerMultiTask ( 'cleanupCoverage' , removeTimestampFromCoverage ) ;
106
+ grunt . registerMultiTask ( 'insertExamples' , insertExamples ) ;
106
107
107
108
//------ Add general help
108
109
grunt . registerTask ( 'h' , 'help on grunt options' , ( ) => {
@@ -298,6 +299,13 @@ function make(grunt) {
298
299
rename : ( dest , src ) => dest + src . replace ( '.ts' , '.html' )
299
300
}
300
301
} ,
302
+ insertExamples : {
303
+ main : { // insert example code into comments
304
+ cwd : 'src/' ,
305
+ src : [ '**/*.js' , '**/*.css' ] ,
306
+ dest : `docs/data/${ lib } .json`
307
+ }
308
+ } ,
301
309
cleanupCoverage : {
302
310
main : { // translate all *.ts files in src *.html files in doc
303
311
expand : true ,
@@ -439,4 +447,22 @@ function make(grunt) {
439
447
function writeIndexJson ( ) {
440
448
grunt . file . write ( 'docs/data/index.json' , `{"docs": ["${ lib } .json"], "title": "HS Libraries"}` ) ;
441
449
}
450
+
451
+ function insertExamples ( ) {
452
+ this . files . map ( f => {
453
+ let changed = false ;
454
+ const content = grunt . file . read ( f . dest ) ;
455
+ const result = content . replace ( / x i m p o r t = ' ( .* ?) ' / g, ( match , p1 ) => {
456
+ const i = f . src . indexOf ( p1 ) ;
457
+ if ( i >= 0 ) {
458
+ changed = true ;
459
+ grunt . log . writeln ( `substituting ${ match } = ${ p1 } for ${ f . cwd + f . src [ i ] } ` ) ;
460
+ const replacement = grunt . file . read ( f . cwd + f . src [ i ] ) . replace ( / \n / g, "\\n" ) . replace ( / \" / g, "\\\"" ) ;
461
+ return '/*ximport*/' + replacement ;
462
+ }
463
+ return '' ;
464
+ } ) ;
465
+ if ( changed ) { grunt . file . write ( f . dest , result ) ; }
466
+ } )
467
+ }
442
468
} ;
0 commit comments