generator-wp-fluidity
Version:
A WordPress theme YeoMan generator, to kickstart WordPress theme development with yo & grunt. Utilizing Stylus w/Fluidity, JadePHP, and Coffeescript.
133 lines (97 loc) • 5.05 kB
Markdown
# Fluidity + Wordpress = ♡
## generator-wp-fluidity
A [Yeoman](http://yeoman.io) generator to kickstart your WordPress theme development with an awesome grunt based workflow that utilizes Stylus w/Fluidity, JadePHP, and Coffeescript.
## What do you get
- A super barebones wp theme
- An awesome grunt based development environment that rapidly increases theme development time and developer happiness with fetaures like:
- Compiling, merging and compressing all Stylus files to one *style.css* file
- Hinting, compiling, merging and compressing all Coffeescript files to one *dist.js* file
- Sniffing, compiling, and compressing all JadePHP files to PHP files
- A 'dev' task that offers LiveReload on changes to your PHP, Style, and Coffescript files all while hinting, sniffing, compiling, and merging automatically in the background.
- A 'build' task for generating a production ready distribution version of the theme minified and compressed to ship.
## Getting Started
You''l need to have Yeoman installed.
You can get it through [npm](https://npmjs.org).
```
$ npm install -g yo
```
Of course you'll also need a working WordPress installation.
Checkout [YeoPress](https://github.com/wesleytodd/YeoPress)
```
npm install -g yo generator-wordpress
```
Once installed you'll be able to conjure up a wordpress install in any directory with:
```
yo wordpress
```
This theme develpoment toolchain also expects some things to be available globally on the system.
In particular, it uses the `phpcs` binary to check the PHP files for syntax errors so you'll need to install that.
We can and should use [Composer](https://github.com/composer/composer) the package manager for PHP.
I recommend installing Composer globally. To do so...
```
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
```
Next use Composer to install Pear phpcs
```
composer global require "squizlabs/php_codesniffer=*"
```
Make sure you have `~/.composer/vendor/bin/` in your PATH.
Add it to your `~/.bash_profile` or `~/.bashrc` like this...
```
export PATH="~/.composer/vendor/bin/:$PATH"
```
## Installation
Finally, you can install wp-fluidity from npm.
```
npm install -g generator-wp-fluidity
```
Then from inside a themes directory of a working wordpress install.
```
yo wp-fluidity
```
You'll be prompted with a few questions about your theme and when it's all done you'll have a new folder wth your themes name.
## Theme Development
To sart developing you'll need to install the dependences the grunt tasks depend on.
First `cd` into the `wp-content/themes/<your theme name>/grunt` directory and run:
```
npm install
```
Once the install is done You'll be able to fire off the default grunt task (dev) and start developing.Simply by running...
```
grunt
```
Or You can run the dev task directly if you like...
```
grunt dev
```
This will run all of the preprocessing in development mode (Unminified, and sourcemapped where possible) for the first time generating the theme itself and
starts a watcher that will trigger the appropriate tasks as you make changes to files.
Of course, you'll have to fire up a PHP server of some kind to actually serve up WordPress.
I'll leave that up to you but I prefer [MAMP](http://www.mamp.info/en/).
### About the Preprocessing
Our toolchain uses several pre-proccessors, linters, uglifiers to make development nicer, easier and cleaner
They are as follows...
#### JadePHP
JadePHP allows us to write our php files using the terse and beatiful syntax of jade.
For more information on the syntax and usage check the readme at [Jade.PHP](https://github.com/everzet/jade.php)
Our jade files our kept in the `/jade` directory. They are then processed on change and the resulting PHP files are generated in the root of the theme directory.
#### Coffeescript
Coffeescript allows us to write our javascript files using the terse and beatiful syntax of coffeescript.
Our coffeescript files are kept in the `/coffee` directory. They are then processed on change and the resulting JS files are generated in the root `/js/tmp` directory.
These JS files will then be Concatenated into just one JS file in `/js/dist.js`.
During dist this file will also be uglified.
#### Stylus
Stylus allows us to write our CSS files using the terse and beatiful syntax of Stylus.
Our stylus files are kept in the `/stylus` directory. They are then processed on change and the resulting CSS files are generated in the root of the theme directory.
##### Fluidity
We're using the FluidityCSS framework in our stylus files. Fluidity will be installed and available for use in your stylesheets.
## Theme Distribution
To create a production ready buold of the them in the the `/dist` directory. Run...
```
grunt build
```
This will re-compile all of the source files in their resepective non-source-mapped, minified, or otherwise uglified/compressed manner
and copy all the necessary files over to the `/dist' directory.
## License
[MIT License](http://en.wikipedia.org/wiki/MIT_License)