A blank slate for the modern web. Just add creativity.
I wanted bootstrap, but with all of the HTML5 Boilerplate tweaks, Modernizr loading, js compression, plus better coffeescript support, and control of js concatenation.
I also wanted an asset organizational strcuture that better assessed the reality that nowdays we live with an uncomforatble mix of compiled and static sources files for css and javascript.
Furthermore, it's nice to have support for coffeescript, less, and sass, plus easy extensibility to whatever else you want.
Finally, I just wanted the peace of mind that with a single clone, I'm ready to go with a robust, clean, efficient, cross-browser, optimized, and organized blank slate.
rake watchwill build everything and watch for new changes.- Always link from
bin, put your code insrc(to compile) andlib(to leave alone) - Use subfolders folders in
srcto specify what you want to concatenate together. Create an optional file calledORDERINGin the folder to explicitly specify the order of concatenation.
- Rakefile - Run
raketo just build andrake watchto build and watch - css
- bin - All compiled css files end up here
- lib - Not touched by Rakefile. You should include from src.
- src - All raw css, or less, or sass files. They are compiled and copied one-to-one to the css/bin directory. Use Less or Sass
@includedirectives to combine multiple files together. If using raw css, use subfolders to concatenate files.- your_subfolder - All css (ONLY) files are concatenated and put in css/bin as
subfolder.css
- your_subfolder - All css (ONLY) files are concatenated and put in css/bin as
- js
- bin - All compiled js files. Each file has a regular and minified version.
- lib - Not touched by Rakefile. Meant for things like jQuery, or anything else you don't want compiled.
- src - All raw javascript and/or coffeescript files go here. They are compiled and copied one-to-one to the js/bin directory. Use subfolders if you want concatenation.
- global - All files put in here will be concatenated, compiled, and put in js/bin as
global.jsandglobal.min.js- ORDERING - A file called
ORDERINGthat lists the order of concatenation. Simply list files (just the name including extensions), one per line, in the order you want.
- ORDERING - A file called
- your_subfolder - All files in 'your_subfolder' are concatenated, compiled, and put in js/bin as
your_subfolder.jsandyour_subfolder.min.js
- global - All files put in here will be concatenated, compiled, and put in js/bin as
- Use the built-in @include directives of less and sass to include files from css/lib.
- Think carefully about what you actually want to concatenate, and what you want to independently load.
- All javascript (except modernizr itself) should be loaded with Modernizr.
- If a couple pages (but not all) need the same javascript file, create a page-specific subfolder in the js/src/ directory for each page and sym-link to common javascript files stored in js/lib. If you need the order explicitly defined, don't forget to create an
ORDERINGfile and list the files. - If all pages need the same javascript file, add it to the js/src/global directory so it concatenates into a single load from js/bin/global.js
gem install watchr- To enable code watchingnpm install -g uglify-js- To minify javascriptnpm install -g coffee-script- To compile coffeescript if you use anynpm install -g less- To compile LESS if you use anygem install sass- To compile SASS if you use any