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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
/**
* @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
/* jshint node: true, browser: false, es3: false */
'use strict';
module.exports = function( grunt ) {
var banner = [
'/**',
' * @license Copyright (c) 2003-' + new Date().getFullYear() + ', CKSource - Frederico Knabben. All rights reserved.',
' * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license',
' */\n',
],
lintFreeBlockTemplate = [
'// jshint ignore:start',
'// jscs:disable',
'<%= block %>',
'// jscs:enable',
'// jshint ignore:end'
].join( '\n' ),
samplesFrameworkDir = 'node_modules/cksource-samples-framework',
samplesFrameworkJsFiles = [
samplesFrameworkDir + '/js/sf.js',
samplesFrameworkDir + '/components/**/*.js',
samplesFrameworkDir + '/node_modules/picomodal/src/picoModal.js'
];
grunt.config.merge( {
less: {
samples: {
files: [
{
src: 'samples/less/samples.less',
dest: 'samples/css/samples.css'
}
],
options: {
ieCompat: true,
paths: [ 'samples/' ],
relativeUrls: true,
banner: banner.join( '\n' ),
sourceMap: true,
sourceMapFileInline: true,
sourceMapFilename: 'samples/css/samples.css.map',
sourceMapURL: 'samples.css.map',
sourceMapRootpath: '../../'
}
}
},
watch: {
'samples-less': {
files: [
'<%= less.samples.options.paths[ 0 ] + "/**/*.less" %>',
samplesFrameworkDir + '/components/**/*.less'
],
tasks: [ 'less:samples' ],
options: {
nospawn: true
}
},
'samples-js': {
files: samplesFrameworkJsFiles,
tasks: [ 'concat:samples' ]
}
},
jsduck: {
toolbarconfigurator: {
src: [
'samples/toolbarconfigurator/js'
],
dest: 'samples/toolbarconfigurator/docs'
}
},
concat: {
samples: {
options: {
stripBanners: true,
banner: banner.join( '\n' ),
// Don't run the linter on 3rd party libraries. You wouldn't be able to fix the errors anyway.
process: function( src, path ) {
console.log( path );
if ( path.match( /cksource-samples-framework\/node_modules/ig ) ) {
src = grunt.template.process( lintFreeBlockTemplate, { data: { block: src } } );
}
return src;
}
},
src: samplesFrameworkJsFiles,
dest: 'samples/js/sf.js'
}
}
} );
grunt.loadNpmTasks( 'grunt-contrib-concat' );
grunt.loadNpmTasks( 'grunt-contrib-less' );
grunt.loadNpmTasks( 'grunt-contrib-watch' );
grunt.loadNpmTasks( 'grunt-jsduck' );
};
|