123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- module.exports = (grunt) ->
- grunt.initConfig
- pkg: grunt.file.readJSON 'package.json'
- coffee:
- simditor:
- options:
- join: true
- bare: true
- files:
- 'lib/simditor.js': [
- 'src/selection.coffee'
- 'src/formatter.coffee'
- 'src/inputManager.coffee'
- 'src/keystroke.coffee'
- 'src/undoManager.coffee'
- 'src/util.coffee'
- 'src/toolbar.coffee'
- 'src/indentation.coffee'
- 'src/clipboard.coffee'
- 'src/core.coffee'
- 'src/i18n.coffee'
- 'src/buttons/button.coffee'
- 'src/buttons/popover.coffee'
- 'src/buttons/title.coffee'
- 'src/buttons/font-scale.coffee'
- 'src/buttons/bold.coffee'
- 'src/buttons/italic.coffee'
- 'src/buttons/underline.coffee'
- 'src/buttons/color.coffee'
- 'src/buttons/list.coffee'
- 'src/buttons/blockquote.coffee'
- 'src/buttons/code.coffee'
- 'src/buttons/link.coffee'
- 'src/buttons/image.coffee'
- 'src/buttons/indent.coffee'
- 'src/buttons/outdent.coffee'
- 'src/buttons/hr.coffee'
- 'src/buttons/table.coffee'
- 'src/buttons/strikethrough.coffee'
- 'src/buttons/alignment.coffee'
- ]
- site:
- expand: true
- flatten: true
- src: 'site/assets/_coffee/*.coffee'
- dest: 'site/assets/scripts/'
- ext: '.js'
- moduleSpec:
- expand: true
- flatten: true
- src: 'spec/src/*.coffee'
- dest: 'spec/'
- ext: '.js'
- buttonSpec:
- expand: true
- flatten: true
- src: 'spec/src/buttons/*.coffee'
- dest: 'spec/buttons/'
- ext: '.js'
- sass:
- simditor:
- options:
- style: 'expanded'
- bundleExec: true
- sourcemap: 'none'
- files:
- 'styles/simditor.css': 'styles/simditor.scss'
- site:
- options:
- style: 'expanded'
- bundleExec: true
- sourcemap: 'none'
- files:
- 'site/assets/styles/app.css': 'site/assets/_sass/app.scss'
- 'site/assets/styles/mobile.css': 'site/assets/_sass/mobile.scss'
- umd:
- all:
- src: 'lib/simditor.js'
- template: 'umd.hbs'
- amdModuleId: 'simditor'
- objectToExport: 'Simditor'
- globalAlias: 'Simditor'
- deps:
- 'default': ['$', 'SimpleModule', 'simpleHotkeys', 'simpleUploader']
- amd: ['jquery', 'simple-module', 'simple-hotkeys', 'simple-uploader']
- cjs: ['jquery', 'simple-module', 'simple-hotkeys', 'simple-uploader']
- global:
- items: ['jQuery', 'SimpleModule', 'simple.hotkeys', 'simple.uploader']
- prefix: ''
- suffix: ''
- copy:
- vendor:
- files: [{
- src: 'vendor/bower/jquery/dist/jquery.min.js',
- dest: 'site/assets/scripts/jquery.min.js'
- }]
- styles:
- files: [{
- src: 'styles/simditor.css',
- dest: 'site/assets/styles/simditor.css'
- }]
- scripts:
- files: [{
- src: 'vendor/bower/simple-module/lib/module.js',
- dest: 'site/assets/scripts/module.js'
- }, {
- src: 'vendor/bower/simple-uploader/lib/uploader.js',
- dest: 'site/assets/scripts/uploader.js'
- }, {
- src: 'vendor/bower/simple-hotkeys/lib/hotkeys.js',
- dest: 'site/assets/scripts/hotkeys.js'
- }, {
- src: 'lib/simditor.js',
- dest: 'site/assets/scripts/simditor.js'
- }]
- package:
- files: [{
- expand: true,
- flatten: true
- src: 'lib/*',
- dest: 'package/scripts/'
- }, {
- src: 'vendor/bower/jquery/dist/jquery.min.js',
- dest: 'package/scripts/jquery.min.js'
- }, {
- src: 'vendor/bower/simple-module/lib/module.js',
- dest: 'package/scripts/module.js'
- }, {
- src: 'vendor/bower/simple-uploader/lib/uploader.js',
- dest: 'package/scripts/uploader.js'
- }, {
- src: 'vendor/bower/simple-hotkeys/lib/hotkeys.js',
- dest: 'package/scripts/hotkeys.js'
- }, {
- expand: true,
- flatten: true
- src: 'styles/*',
- dest: 'package/styles/'
- }, {
- src: 'site/assets/images/image.png',
- dest: 'package/images/image.png'
- }]
- watch:
- styles:
- files: ['styles/*.scss']
- tasks: ['sass:simditor', 'copy:styles', 'jekyll']
- scripts:
- files: ['src/*.coffee', 'src/buttons/*.coffee']
- tasks: ['coffee:simditor', 'umd', 'copy:scripts', 'jekyll']
- siteStyles:
- files: ['site/assets/_sass/*.scss']
- tasks: ['sass:site', 'jekyll']
- siteScripts:
- files: ['site/assets/_coffee/*.coffee']
- tasks: ['coffee:site', 'jekyll']
- jekyll:
- files: ['site/**/*.html', 'site/**/*.md', 'site/**/*.yml']
- tasks: ['jekyll']
- moduleSpec:
- files: ['spec/src/*.coffee']
- tasks: ['coffee:moduleSpec']
- buttonSpec:
- files: ['spec/src/buttons/*.coffee']
- tasks: ['coffee:buttonSpec']
- jekyll:
- site:
- options:
- bundleExec: true
- config: 'jekyll.yml'
- express:
- server:
- options:
- server: 'server.js'
- bases: '_site'
- uglify:
- simditor:
- options:
- preserveComments: 'some'
- files:
- 'package/scripts/module.min.js': 'package/scripts/module.js'
- 'package/scripts/uploader.min.js': 'package/scripts/uploader.js'
- 'package/scripts/hotkeys.min.js': 'package/scripts/hotkeys.js'
- 'package/scripts/simditor.min.js': 'package/scripts/simditor.js'
- usebanner:
- simditor:
- options:
- banner: '''/*!
- * Simditor v<%= pkg.version %>
- * http://simditor.tower.im/
- * <%= grunt.template.today("yyyy-mm-dd") %>
- */'''
- files:
- src: ['lib/simditor.js', 'styles/simditor.css']
- compress:
- package:
- options:
- archive: 'package/simditor-<%= pkg.version %>.zip'
- files: [{
- expand: true,
- cwd: 'package/'
- src: '**',
- dest: 'simditor-<%= pkg.version %>/'
- }]
- clean:
- package:
- src: ['package/']
- jasmine:
- test:
- src: ['lib/**/*.js']
- options:
- outfile: 'spec/index.html'
- styles: [
- 'styles/simditor.css'
- ]
- specs: [
- 'spec/*.js'
- 'spec/buttons/*.js'
- ]
- vendor: [
- 'vendor/bower/jquery/dist/jquery.min.js'
- 'vendor/bower/simple-module/lib/module.js'
- 'vendor/bower/simple-uploader/lib/uploader.js'
- 'vendor/bower/simple-hotkeys/lib/hotkeys.js'
- ]
- curl:
- fonticons:
- src: "http://use.fonticons.com/kits/d7611efe/d7611efe.css"
- dest: "styles/fonticon.scss"
- grunt.loadNpmTasks 'grunt-contrib-sass'
- grunt.loadNpmTasks 'grunt-contrib-coffee'
- grunt.loadNpmTasks 'grunt-contrib-watch'
- grunt.loadNpmTasks 'grunt-contrib-copy'
- grunt.loadNpmTasks 'grunt-contrib-uglify'
- grunt.loadNpmTasks 'grunt-contrib-compress'
- grunt.loadNpmTasks 'grunt-contrib-clean'
- grunt.loadNpmTasks 'grunt-umd'
- grunt.loadNpmTasks 'grunt-express'
- grunt.loadNpmTasks 'grunt-jekyll'
- grunt.loadNpmTasks 'grunt-contrib-jasmine'
- grunt.loadNpmTasks 'grunt-banner'
- grunt.loadNpmTasks 'grunt-curl'
- grunt.registerTask 'default', ['site', 'express', 'watch']
- grunt.registerTask 'site', ['sass', 'coffee', 'umd', 'copy:vendor', 'copy:scripts', 'copy:styles', 'usebanner', 'jekyll']
- grunt.registerTask 'test', ['coffee:moduleSpec', 'coffee:buttonSpec', 'jasmine']
- grunt.registerTask 'package', ['clean:package', 'copy:package', 'uglify:simditor', 'compress']
- grunt.registerTask 'fonticons', ['curl']
|