Skip to content

rishabh-ink/voxel

Repository files navigation

Voxel

A minimal theme.

Travis Gemnasium Code Climate Coveralls License

⭐ Live demo

The live demo is hosted on Heroku at voxel-rsr.herokuapp.com/dist.

🚣 Get started

This project depends on the following tools:

🎩 Tip Use nvm and rvm for easy management of NodeJS and Ruby installations.

git clone git@github.com:rishabhsrao/voxel.git voxel
cd voxel
npm install
bundle install
./node_modules/.bin/bower install
./node_modules/.bin/gulp serve && say awesome # Only on Mac OSX; use espeak on GNU/Linux. Windows users, sorry, no awesomeness for you!

🎩 Tip If you have global installations of bower and gulp, then you can avoid typing the ./node_modules/.bin/ bit.

🎩 Tip Downloading dependencies over git:// may be blocked if you are behind a firewall. The solution is to configure Git to use https:// instead of git://. Run the following to force Git to use HTTPS:

git config url.https://.insteadOf git://
# Undo using git config unset url.https://

🔩 Build

This project is built using Gulp.

You can run a task using ./node_modules/.bin/gulp {{task-name}}. The following build tasks are available:

  • build Creates a build artifact, ready for deployment.
  • clean:deploy Cleans all generated artifacts, except the distribution artifact.
  • clean Cleans the distribution artifact and any other generated artifacts.
  • image:minify Compresses the image files using gulp-imagemin.
  • script:lint Lints the JavaScript files using JSHint.
  • script:minify:json Minifies the JSON files using JSON Minify.
  • script:minify Minifies the JavaScript files using UglifyJS.
  • script:optimize Combines and optimizes all RequireJS modules into one file using RequireJS Optimizer.
  • script:test:report Uploads the code coverage report to Coveralls.
  • script:test:unit Runs the JavaScript unit tests using Karma and Jasmine.
  • script:test Runs all the JavaScript tests.
  • serve Starts a web server with live-reload support using BrowserSync.
  • source Copies the source files in the distribution artifact.
  • style:compile Compiles the Sass files using Compass.
  • style:lint Lints the Sass files using SCSS-Lint.

🎩 Tip It's a good idea to occasionally run:

git gc
npm prune && npm install
bower prune && bower install
bundle clean --force && bundle install

... to keep your repository lean and mean.

🎩 Tip The environment variable, VOXEL_CI, must be set in Travis. It is used to control how Gulp builds the project, for example, sending operating system build notifications.

🚀 Deploy

This project is continuously deployed to Heroku at voxel-rsr.herokuapp.com/dist using a NodeJS buildpack by Travis, whenever a new tag is pushed. This should be configured only once using the Heroku toolbelt:

heroku create voxel-rsr
heroku ps:scale web=1 --app voxel-rsr
heroku config:set BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-nodejs#v75 --app voxel-rsr

🎩 Tip You will need to authenticate Travis with Heroku by adding an API key using:

bundle exec travis encrypt $(heroku auth:token) --add deploy.api_key

... which will update .travis.yml with an encrypted Heroku API key.

🎩 Tip The heroku ps:scale web=1 will spin up a dyno under the free plan.

🎩 Tip The #75 above is the release tag for the project. Use the latest tag for best results.

🎩 Tip The non-minified version of this project is also deployed to Heroku at voxel-rsr.herokuapp.com/app.

📜 License

See license.md.

HexIcons courtesy ExpanseLook.

Color theme palette courtesy Google Material Design Colors.

HTML example page courtesy Poole.