module.exports = function(grunt) { // load all grunt tasks require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); grunt.initConfig({ open : { dev: { path: 'http://localhost:1919' } }, connect: { server: { options: { port: 1919, base: 'demo_docs/build', livereload: true } } }, copy: { fonts: { files: [ // includes files within path {expand: true, flatten: true, src: ['bower_components/font-awesome/fonts/*'], dest: 'sphinx_rtd_theme/static/fonts/', filter: 'isFile'} ] } }, compass: { build: { options: { config: 'compass.rb', environment: 'production', force: true } }, dev: { options: { config: 'compass.rb', force: true } } }, exec: { bower_update: { cmd: 'bower update' }, build_sphinx: { cmd: 'sphinx-build demo_docs/source demo_docs/build' } }, clean: { build: ["demo_docs/build"], fonts: ["sphinx_rtd_theme/static/fonts"] }, watch: { /* Compile sass changes into theme directory */ sass: { files: ['sass/*.sass', 'bower_components/**/*.sass'], tasks: ['compass:dev'] }, /* Changes in theme dir rebuild sphinx */ sphinx: { files: ['sphinx_rtd_theme/**/*', 'demo_docs/**/*.rst', 'demo_docs/**/*.py'], tasks: ['clean:build','exec:build_sphinx'] }, /* live-reload the demo_docs if sphinx re-builds */ livereload: { files: ['demo_docs/build/**/*'], options: { livereload: true } } } }); grunt.loadNpmTasks('grunt-exec'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-compass'); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-open'); grunt.registerTask('fonts', ['clean:fonts','copy:fonts']); grunt.registerTask('default', ['exec:bower_update','clean:build','compass:dev','exec:build_sphinx','connect','open','watch']); grunt.registerTask('build', ['exec:bower_update','clean:build','compass:build','exec:build_sphinx']); }