#paperTheme
paperTheme is a WordPress hacker theme built from _s (http://underscores.me) with parts adapted from Bones (http://themble.com/bones/). Hack it, push it, pull request it, put a fork in it, have fun with it and if you have an issue with that.....well you know where to put it.
###Repo-genesis (how this repo started)
paperTheme's root repo is a fork of the Wordpress repo (https://github.com/WordPress/WordPress) which is updated every 15minutes from their svn. This fork was created so that the core files will easily be in-sync with the latest WordPress updates. This also allows you roll back core files easily and version out certain plugins so that when you clone the repo you have everything you need. This also allows you to grab the optimized .htaccess file when you clone it down. the paperTheme files are a modified fork of _s (http://underscores.me) by Automattic, these files have been changed and customized by keep their with the _s theme structure. Giving credit where credit is due paperTheme's responsice sass structure is adapted from Bones (http://themble.com/bones/) and also includes alot of customization.
paperTheme itself is meant to be used as an uncompressed developement theme with comes with grunt task for building production ready theme.
##paperTheme workflow
This workflow assumes a basic knowledge of the terminal, GIT, WP installation, Node.js, and Grunt.js
- git clone where you want the WP install to be
$ git remote add upstream https://github.com/WordPress/WordPress.git
This makes sure you have an upstream branch to the WordPress repo to pull new version changes or be able to roll back- Setup remote tracking branches to your repo. NOTE:Please submit changes to paperTheme repo as pull request
- install WP
$ cd paperTheme/wp-content/themes/paperTheme
$ npm install
This sets-up the grunt task in Gruntfile.js- change the ClientName and Author variables in the top of Gruntfile.js
$ grunt watch
Start hacking at the theme and building awesome stuff with it- git commit your changes
$ grunt build
Builds your production theme using the ClientName variable in Gruntfile.js- Activate your theme and check it out locally to make sure it's solid
$ grunt deploy
This grunt builds, git adds and commits your production theme, then runs git push origin master- DRINK BEER! (or don't if you're straight edge, it's cool )
####Grunt Tasks list
$ grunt watch
- clean:sourcemap
- compass:dev
- autoprefixer
- jshint - javascript linting
- concat - js and css
- cssmin
- uglify - js minification
- notify:watch - letting you know what's up
```$ grunt clean ``` - clear .tmp/ , .sass-cache/, and sourcemaps
```$ grunt test-js ``` - check all javascript, concat js, and minify js
```$ grunt build ``` - clean - compass:prod - autoprefixer - replace:cssSiteAuthor - replaces only in css/ of dev. theme - jshint - concat - js and css respectively - imagemin - png,jpg,gif - svgmin - preserves IDs and classes - cssmin - uglify - javascript minification - copy - copy assets to production theme - replace - - uses ClientName variable to replace all paperTheme references in production theme - - point js, css, imgs urls to assets folder in production theme
```$ grunt deploy ``` - grunt clean - gruny build - shell:gitAddCommit - git adds and commit your changes - gitpush:production - - git push origin master