Skip to content

Instantly share code, notes, and snippets.

@llaumgui
Last active January 3, 2016 02:39
Show Gist options
  • Save llaumgui/8397009 to your computer and use it in GitHub Desktop.
Save llaumgui/8397009 to your computer and use it in GitHub Desktop.
From my blog: Bower and Grunt configuration to my theme.
{
"directory": "vendor"
}
/* -- BEGIN LICENSE BLOCK ---------------------------------------
# This file is part of Boldy, a theme for Dotclear
#
# Theme by Site5 (http://www.s5themes.com)
# under a GPLv2 http://www.gnu.org/licenses/gpl-2.0.txt
# Ported on Dotclear by Guillaume Kulakowski (http://www.llaumgui.com)
#
# -- END LICENSE BLOCK ----------------------------------------- */
// Core variables and mixins
@import "../vendor/bootstrap/less/variables.less";
@import "../vendor/bootstrap/less/mixins.less";
// My variables
@import "variables.less";
@import "mixins.less";
// Reset
@import "../vendor/bootstrap/less/normalize.less";
@import "../vendor/bootstrap/less/print.less";
// Core CSS
@import "../vendor/bootstrap/less/scaffolding.less";
@import "../vendor/bootstrap/less/type.less";
@import "../vendor/bootstrap/less/code.less";
@import "../vendor/bootstrap/less/grid.less";
//@import "../vendor/bootstrap/less/tables.less";
@import "../vendor/bootstrap/less/forms.less";
@import "../vendor/bootstrap/less/buttons.less";
// Components
@import "../vendor/bootstrap/less/component-animations.less";
//@import "../vendor/bootstrap/less/glyphicons.less";
@import "../vendor/bootstrap/less/dropdowns.less";
//@import "../vendor/bootstrap/less/button-groups.less";
//@import "../vendor/bootstrap/less/input-groups.less";
@import "../vendor/bootstrap/less/navs.less";
@import "../vendor/bootstrap/less/navbar.less";
//@import "../vendor/bootstrap/less/breadcrumbs.less";
@import "../vendor/bootstrap/less/pagination.less";
@import "../vendor/bootstrap/less/pager.less";
//@import "../vendor/bootstrap/less/labels.less";
//@import "../vendor/bootstrap/less/badges.less";
//@import "../vendor/bootstrap/less/jumbotron.less";
@import "../vendor/bootstrap/less/thumbnails.less";
@import "../vendor/bootstrap/less/alerts.less";
//@import "../vendor/bootstrap/less/progress-bars.less";
//@import "../vendor/bootstrap/less/media.less";
@import "../vendor/bootstrap/less/list-group.less";
@import "../vendor/bootstrap/less/panels.less";
@import "../vendor/bootstrap/less/wells.less";
//@import "../vendor/bootstrap/less/close.less";
// Components w/ JavaScript
//@import "../vendor/bootstrap/less/modals.less";
@import "../vendor/bootstrap/less/tooltip.less";
//@import "../vendor/bootstrap/less/popovers.less";
@import "../vendor/bootstrap/less/carousel.less";
// Utility classes
@import "../vendor/bootstrap/less/utilities.less";
@import "../vendor/bootstrap/less/responsive-utilities.less";
{
"name": "Boldy",
"version": "1.1.5",
"main": [
"css/screen.css",
"css/indefero.css",
"js/global.js"
],
"ignore": [
".jshintrc",
"build.xml",
"DoxyFile",
"screenshot.jpg"
],
"private": true,
"dependencies": {
"jquery": "~1.*",
"bootstrap": "3.*",
"jquery-colorbox": "latest",
"jquery-cookie": "latest",
"scroll-to-top": "latest",
"async-gravatars": "josephscott/async-gravatars",
"nwxforms": "dperini/nwxforms",
"headjs": "latest",
"respond": "latest"
}
}
module.exports = (grunt) ->
#
# Settings
# ========
# Force use of Unix newlines
grunt.util.linefeed = '\n'
#
# Project configuration
# =====================
grunt.initConfig
pkg: grunt.file.readJSON 'package.json'
bowerrc: grunt.file.readJSON '.bowerrc'
csslintrc : grunt.file.readJSON '.csslintrc'
# Path configuration from .bowerrc
# --------------------------------
dirs:
'vendor': '<%= bowerrc.directory %>'
'bootstrap':
'js': '<%= dirs.vendor %>/bootstrap/js'
'less': '<%= dirs.vendor %>/bootstrap/less'
'css': 'css'
'less': 'less'
'js': 'js'
# Sources configuration
# ---------------------
src:
output:
'bootstrap':
'js': '<%= dirs.vendor %>/bootstrap/my/js/bootstrap.js'
'css': '<%= dirs.vendor %>/bootstrap/my/css/bootstrap.css'
'boldy':
css:
'screen': '<%= dirs.css %>/screen.css'
'indefero': '<%= dirs.css %>/indefero.css'
js: '<%= dirs.js %>/global.js'
input:
bootstrap:
'js': [
'<%= dirs.bootstrap.js %>/dropdown.js'
'<%= dirs.bootstrap.js %>/tooltip.js'
'<%= dirs.bootstrap.js %>/collapse.js'
'<%= dirs.bootstrap.js %>/transition.js'
'<%= dirs.bootstrap.js %>/carousel.js'
],
'less': [
'<%= dirs.less %>/bootstrap.less'
]
indefero: '<%= dirs.css %>/indefero.src.css'
less: '<%= dirs.less %>/boldy_boot.less'
js: [
'<%= dirs.vendor %>/jquery-cookie/jquery.cookie.js'
'<%= src.output.bootstrap.js %>'
'<%= dirs.vendor %>/scroll-to-top/jquery.scrollToTop.min.js'
'<%= dirs.js %>/js/post.js'
'<%= dirs.vendor %>/async-gravatars/async-gravatars.js'
'<%= dirs.vendor %>/jquery-colorbox/jquery.colorbox-min.js'
'<%= dirs.vendor %>/nwxforms/src/nwxforms.js'
'<%= dirs.js %>/boldy.js'
]
# Banner
# ------
banner:
'css': '''
/*!
* Boldy for Dotclear v<%= pkg.version %>.
*
* Original theme by Site5 (http://www.s5themes.com) under GPLv2 license.
*
* Ported on Dotclear by <%= pkg.author %> (<%= pkg.homepage %>).
* Copyright 2012-<%= grunt.template.today("yyyy") %> <%= pkg.author %>.
*
* Using the CSS framework Bootstrap under MIT license.
*/
'''
'js': '''
/*!
* Boldy for Dotclear v<%= pkg.version %> by <%= pkg.author %> (<%= pkg.homepage %>).
* Copyright 2012-<%= grunt.template.today("yyyy") %> <%= pkg.author %>.
*
* Using:
* - Async Gravatars under MIT license.
* - HeadJS under MIT license.
* - jQuery under MIT license.
* - jQuery ColorBox under MIT license.
* - jQuery scrollToTop under MIT license.
* - nwxforms under MIT license.
* - Respond under MIT license.
*/
'''
# ================================= Task ================================= #
# Bower
# -----
bower:
install:
options:
targetDir: '<%= dirs.vendor %>'
cleanTargetDir: true
layout: 'byComponent'
install: true
copy: false
verbose: true
# Concatenation for JS
# --------------------
concat:
bootstrap:
src: '<%= src.input.bootstrap.js %>'
dest: '<%= src.output.bootstrap.js %>'
# LESS
# ----
less:
boldy:
options:
compress: true
cleancss: true
report: 'gzip'
strictImports: true
files:
'<%= src.output.boldy.css.screen %>': '<%= src.input.less %>'
debug:
options:
compress: false
cleancss: false
report: 'none'
strictImports: true
files:
'<%= src.output.boldy.css.screen %>': '<%= src.input.less %>'
bootstrap:
options:
compress: true
cleancss: true
report: 'gzip'
strictImports: true
files:
'<%= src.output.bootstrap.css %>': '<%= src.input.bootstrap.less %>'
# Watcher for LESS files
# ----------------------
watch:
boldy:
files: ['<%= dirs.less %>/*.less']
tasks: [
'less:debug'
'lesslint'
]
options:
spawn: false
# CSSmin for indefero
# -------------------
cssmin:
indefero:
options:
report: 'gzip'
files:
'<%= src.output.boldy.css.indefero %>': '<%= src.input.indefero %>'
# Uglify the JS files
# -------------------
uglify:
boldy:
options:
report: 'gzip'
banner: '<%= banner.js %>'
files:
'<%= src.output.boldy.js %>': '<%= src.input.js %>'
# Banner for LESS
# ---------------
usebanner:
boldy:
options:
banner: '<%= banner.css %>'
files:
src: '<%= src.output.boldy.css.screen %>'
# LessLint
#---------
lesslint:
src: [
'<%= src.input.less %>'
]
options:
csslint:
'<%= csslintrc %>'
# JSHint
# ------
jshint:
boldy:
options:
jshintrc: true
files:
src: [ '<%= dirs.js %>/boldy.js' ]
# ============================== Load plugins ============================== #
grunt.loadNpmTasks 'grunt-bower-task'
grunt.loadNpmTasks 'grunt-contrib-concat'
grunt.loadNpmTasks 'grunt-contrib-less'
grunt.loadNpmTasks 'grunt-contrib-watch'
grunt.loadNpmTasks 'grunt-contrib-cssmin'
grunt.loadNpmTasks 'grunt-contrib-uglify'
grunt.loadNpmTasks 'grunt-banner'
grunt.loadNpmTasks 'grunt-lesslint'
grunt.loadNpmTasks 'grunt-contrib-jshint'
# ============================= Callable tasks ============================= #
grunt.registerTask 'w', 'watch:boldy'
grunt.registerTask 'indefero', 'cssmin:indefero'
grunt.registerTask 'bootstrap', [
'concat:bootstrap'
'less:bootstrap'
]
grunt.registerTask 'lint', [
'lesslint'
'jshint'
]
grunt.registerTask 'check', 'lint'
grunt.registerTask 'qa', 'lint'
grunt.registerTask 'default', [
'bootstrap'
'boldy'
]
grunt.registerTask 'boldy', [
'lint'
'less:boldy'
'usebanner:boldy'
'uglify:boldy'
'indefero'
]
grunt.registerTask 'full', [
'bower'
'default'
]
grunt.registerTask 'all', 'full' # Alias
{
"name": "Boldy",
"version": "1.1.5",
"description": "The Boldy theme for Dotclear",
"repository": {
"type": "git",
"url": "git@projects.llaumgui.com:llaumgui-com.git"
},
"author": "Guillaume Kulakowski",
"homepage": "http://www.llaumgui.com",
"devDependencies": {
"bower": "latest",
"grunt": "latest",
"grunt-bower-task": "latest",
"grunt-contrib-watch": "latest",
"grunt-contrib-uglify": "latest",
"grunt-contrib-concat": "latest",
"grunt-contrib-cssmin": "latest",
"grunt-contrib-less": "latest",
"grunt-banner": "latest",
"grunt-contrib-jshint": "latest",
"grunt-lesslint": "latest"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment